Sparkle 0.0.1
Loading...
Searching...
No Matches
spk::GameEngineWidget Class Reference

Widget that forwards input and paint events to a GameEngine. More...

#include <spk_game_engine_widget.hpp>

Inheritance diagram for spk::GameEngineWidget:
Inheritance graph
Collaboration diagram for spk::GameEngineWidget:
Collaboration graph

Public Member Functions

 GameEngineWidget (const std::wstring &p_name, spk::Widget *p_parent)
 Builds a game engine widget.
void setGameEngine (spk::GameEngine *p_engine)
 Sets the game engine to drive rendering and input.
spk::GameEnginegameEngine ()
 Returns the current game engine pointer.
const spk::GameEnginegameEngine () const
 Returns the current game engine pointer.
Public Member Functions inherited from spk::Widget
void takeFocus (FocusType p_focusType)
 Grants this widget ownership of the requested focus type.
void releaseFocus (FocusType p_focusType)
 Releases a previously acquired focus type.
bool hasFocus (FocusType p_focusType) const
 Checks if this widget currently owns a focus type.
void takeAllFocus ()
 Acquires both keyboard and mouse focus.
void releaseAllFocus ()
 Releases both keyboard and mouse focus types.
 Widget (const std::wstring &p_name, Widget *p_parent)
 Builds a widget optionally attached to a parent.
void addChild (Widget *p_child) override
 Adds a child widget and sorts the hierarchy by layer.
const float & layer () const
 Current rendering layer of the widget.
void setLayer (const float &p_newLayer)
 Updates the widget layer and propagates relative offsets to children.
const std::wstring & name () const
 Retrieves the widget name.
void setName (const std::wstring &p_name)
 Sets the widget name.
void setGeometry (const spk::Extend2D &p_geometry) override
 Requests a specific viewport and scissor region for the widget.
const spk::Extend2Dgeometry () const
 Returns the current widget geometry.
const spk::OpenGL::ViewRegionviewRegion () const
 Accesses the computed view region.
const spk::OpenGL::FrameBufferObjectframeBufferObject () const
 Returns the frame buffer object used for widget rendering.
const spk::OpenGL::FrameBufferObjectfbo () const
 Alias for frameBufferObject().
void requireGeometryChange ()
 Marks the widget view region as needing recomputation.
Public Member Functions inherited from spk::InherenceObject< Widget >
virtual void removeChild (Widget *p_child)
 Removes a child from this node.
Widgetparent () const
 Returns the parent pointer.
virtual std::vector< Widget * > & children ()
 Returns the children vector.
void clearChildren ()
 Clears the children list and resets each child's parent pointer.
Public Member Functions inherited from spk::ActivableObject
 ActivableObject ()
 Builds a deactivated object.
 ActivableObject (ActivationStatus p_initial)
 Builds with a custom initial activation state.
void activate ()
 Sets the state to Activated.
void deactivate ()
 Sets the state to Deactivated.
void toggle ()
 Toggles between activated and deactivated states.
bool isActive () const
 Checks whether the object is currently activated.
Contract addActivationCallback (const Job &p_callback)
 Registers a callback executed when the object activates.
Contract addDeactivationCallback (const Job &p_callback)
 Registers a callback executed when the object deactivates.
Public Member Functions inherited from spk::StatefulObject< ActivationStatus >
 StatefulObject (const ActivationStatus &p_initialState)
 Builds with an initial state.
StatefulObjectoperator= (const StatefulObject &p_other)=delete
void setState (const ActivationStatus &p_newState)
 Sets a new state and triggers callbacks registered for it.
ActivationStatus state () const
 Returns the current state.
Contract addCallback (const ActivationStatus &p_state, const Job &p_callback)
 Subscribes a callback for a specific state.
Public Member Functions inherited from spk::ResizableElement
SizeHintsizeHint ()
 Returns mutable size hint data.
const SizeHintsizeHint () const
 Returns const size hint data.

Protected Member Functions

void _onGeometryChange () override
 Updates engine viewport when geometry changes.
void _onPaintEvent (spk::PaintEvent &p_event) override
 Paint event forwarded to the game engine.
void _onKeyPressEvent (spk::KeyPressEvent &p_event) override
 Forwards key press events to the game engine.
void _onKeyReleaseEvent (spk::KeyReleaseEvent &p_event) override
 Forwards key release events to the game engine.
void _onGlyphEvent (spk::GlyphEvent &p_event) override
 Forwards glyph input events to the game engine.
void _onMousePressEvent (spk::MousePressEvent &p_event) override
 Forwards mouse press events to the game engine.
void _onMouseReleaseEvent (spk::MouseReleaseEvent &p_event) override
 Forwards mouse release events to the game engine.
void _onMouseDoubleClickEvent (spk::MouseDoubleClickEvent &p_event) override
 Forwards mouse double click events to the game engine.
void _onMouseMotionEvent (spk::MouseMotionEvent &p_event) override
 Forwards mouse motion events to the game engine.
void _onMouseWheelEvent (spk::MouseWheelEvent &p_event) override
 Forwards mouse wheel events to the game engine.
void _onEnterResizeModeEvent (spk::EnterResizeModeEvent &p_event) override
 Forwards enter resize mode events to the game engine.
void _onResizeEvent (spk::ResizeEvent &p_event) override
 Forwards resize events to the game engine.
void _onExitResizeModeEvent (spk::ExitResizeModeEvent &p_event) override
 Forwards exit resize mode events to the game engine.
void _onQuitEvent (spk::QuitEvent &p_event) override
 Forwards quit events to the game engine.
void _onMoveEvent (spk::MoveEvent &p_event) override
 Forwards move events to the game engine.
void _onFullScreenModeEvent (spk::FullScreenModeEvent &p_event) override
 Forwards fullscreen mode events to the game engine.
void _onMaximizedModeEvent (spk::MaximizedModeEvent &p_event) override
 Forwards maximized mode events to the game engine.
void _onFocusEvent (spk::FocusEvent &p_event) override
 Forwards focus events to the game engine.
void _onUpdateEvent (spk::UpdateEvent &p_event) override
 Forwards update events to the game engine.

Additional Inherited Members

Public Types inherited from spk::Widget
enum class  FocusType { Keyboard = 0 , Mouse = 1 }
 Types of focus a widget can own.
Public Types inherited from spk::ActivableObject
using Contract = StatefulObject<ActivationStatus>::Contract
 Subscription handle controlling callback lifetime.
using Job = StatefulObject<ActivationStatus>::Job
 Callback signature executed on activation state changes.
Public Types inherited from spk::StatefulObject< ActivationStatus >
using Contract
 Handle allowing subscribers to manage callback lifetimes.
using Job
 Callable invoked when the object transitions to a state.
Static Public Member Functions inherited from spk::Widget
static WidgetfocusedWidget (FocusType p_focusType)
 Retrieves the widget currently owning a focus type.
Static Public Attributes inherited from spk::Widget
static const size_t NbFocusType = 2
 Number of focus slots tracked at runtime.

Detailed Description

Widget that forwards input and paint events to a GameEngine.

view.setGameEngine(&engine);
Widget that forwards input and paint events to a GameEngine.
Definition spk_game_engine_widget.hpp:18
Widget * parent() const
Definition spk_inherence_object.hpp:85

Constructor & Destructor Documentation

◆ GameEngineWidget()

spk::GameEngineWidget::GameEngineWidget ( const std::wstring & p_name,
spk::Widget * p_parent )

Builds a game engine widget.

Parameters
p_nameWidget name.
p_parentParent widget.
Here is the call graph for this function:

Member Function Documentation

◆ _onEnterResizeModeEvent()

void spk::GameEngineWidget::_onEnterResizeModeEvent ( spk::EnterResizeModeEvent & p_event)
overrideprotectedvirtual

Forwards enter resize mode events to the game engine.

Parameters
p_eventEnter resize mode event payload.

Reimplemented from spk::Widget.

◆ _onExitResizeModeEvent()

void spk::GameEngineWidget::_onExitResizeModeEvent ( spk::ExitResizeModeEvent & p_event)
overrideprotectedvirtual

Forwards exit resize mode events to the game engine.

Parameters
p_eventExit resize mode event payload.

Reimplemented from spk::Widget.

◆ _onFocusEvent()

void spk::GameEngineWidget::_onFocusEvent ( spk::FocusEvent & p_event)
overrideprotectedvirtual

Forwards focus events to the game engine.

Parameters
p_eventFocus event payload.

Reimplemented from spk::Widget.

◆ _onFullScreenModeEvent()

void spk::GameEngineWidget::_onFullScreenModeEvent ( spk::FullScreenModeEvent & p_event)
overrideprotectedvirtual

Forwards fullscreen mode events to the game engine.

Parameters
p_eventFullscreen event payload.

Reimplemented from spk::Widget.

◆ _onGeometryChange()

void spk::GameEngineWidget::_onGeometryChange ( )
overrideprotectedvirtual

Updates engine viewport when geometry changes.

Reimplemented from spk::Widget.

Here is the call graph for this function:

◆ _onGlyphEvent()

void spk::GameEngineWidget::_onGlyphEvent ( spk::GlyphEvent & p_event)
overrideprotectedvirtual

Forwards glyph input events to the game engine.

Parameters
p_eventGlyph event payload.

Reimplemented from spk::Widget.

◆ _onKeyPressEvent()

void spk::GameEngineWidget::_onKeyPressEvent ( spk::KeyPressEvent & p_event)
overrideprotectedvirtual

Forwards key press events to the game engine.

Parameters
p_eventKey press event payload.

Reimplemented from spk::Widget.

◆ _onKeyReleaseEvent()

void spk::GameEngineWidget::_onKeyReleaseEvent ( spk::KeyReleaseEvent & p_event)
overrideprotectedvirtual

Forwards key release events to the game engine.

Parameters
p_eventKey release event payload.

Reimplemented from spk::Widget.

◆ _onMaximizedModeEvent()

void spk::GameEngineWidget::_onMaximizedModeEvent ( spk::MaximizedModeEvent & p_event)
overrideprotectedvirtual

Forwards maximized mode events to the game engine.

Parameters
p_eventMaximized event payload.

Reimplemented from spk::Widget.

◆ _onMouseDoubleClickEvent()

void spk::GameEngineWidget::_onMouseDoubleClickEvent ( spk::MouseDoubleClickEvent & p_event)
overrideprotectedvirtual

Forwards mouse double click events to the game engine.

Parameters
p_eventMouse double click event payload.

Reimplemented from spk::Widget.

◆ _onMouseMotionEvent()

void spk::GameEngineWidget::_onMouseMotionEvent ( spk::MouseMotionEvent & p_event)
overrideprotectedvirtual

Forwards mouse motion events to the game engine.

Parameters
p_eventMouse motion event payload.

Reimplemented from spk::Widget.

◆ _onMousePressEvent()

void spk::GameEngineWidget::_onMousePressEvent ( spk::MousePressEvent & p_event)
overrideprotectedvirtual

Forwards mouse press events to the game engine.

Parameters
p_eventMouse press event payload.

Reimplemented from spk::Widget.

◆ _onMouseReleaseEvent()

void spk::GameEngineWidget::_onMouseReleaseEvent ( spk::MouseReleaseEvent & p_event)
overrideprotectedvirtual

Forwards mouse release events to the game engine.

Parameters
p_eventMouse release event payload.

Reimplemented from spk::Widget.

◆ _onMouseWheelEvent()

void spk::GameEngineWidget::_onMouseWheelEvent ( spk::MouseWheelEvent & p_event)
overrideprotectedvirtual

Forwards mouse wheel events to the game engine.

Parameters
p_eventMouse wheel event payload.

Reimplemented from spk::Widget.

◆ _onMoveEvent()

void spk::GameEngineWidget::_onMoveEvent ( spk::MoveEvent & p_event)
overrideprotectedvirtual

Forwards move events to the game engine.

Parameters
p_eventMove event payload.

Reimplemented from spk::Widget.

◆ _onPaintEvent()

void spk::GameEngineWidget::_onPaintEvent ( spk::PaintEvent & p_event)
overrideprotectedvirtual

Paint event forwarded to the game engine.

Parameters
p_eventPaint event payload.

Reimplemented from spk::Widget.

◆ _onQuitEvent()

void spk::GameEngineWidget::_onQuitEvent ( spk::QuitEvent & p_event)
overrideprotectedvirtual

Forwards quit events to the game engine.

Parameters
p_eventQuit event payload.

Reimplemented from spk::Widget.

◆ _onResizeEvent()

void spk::GameEngineWidget::_onResizeEvent ( spk::ResizeEvent & p_event)
overrideprotectedvirtual

Forwards resize events to the game engine.

Parameters
p_eventResize event payload.

Reimplemented from spk::Widget.

◆ _onUpdateEvent()

void spk::GameEngineWidget::_onUpdateEvent ( spk::UpdateEvent & p_event)
overrideprotectedvirtual

Forwards update events to the game engine.

Parameters
p_eventUpdate event payload.

Reimplemented from spk::Widget.

◆ gameEngine() [1/2]

spk::GameEngine * spk::GameEngineWidget::gameEngine ( )

Returns the current game engine pointer.

Returns
Game engine pointer or nullptr.

◆ gameEngine() [2/2]

const spk::GameEngine * spk::GameEngineWidget::gameEngine ( ) const

Returns the current game engine pointer.

Returns
Game engine pointer or nullptr.

◆ setGameEngine()

void spk::GameEngineWidget::setGameEngine ( spk::GameEngine * p_engine)

Sets the game engine to drive rendering and input.

Parameters
p_engineGame engine pointer.
Here is the call graph for this function:

The documentation for this class was generated from the following files: