Foray Library
rapid prototyping framework for crossplatform development of vulkan hardware ray tracing applications
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
foray::osi::OsManager Class Reference

Class of which a single instance needs to be present for interaction with the operating system via SDL. More...

#include <foray_osmanager.hpp>

Public Member Functions

InputDevice * Mouse ()
 
const InputDevice * Mouse () const
 
InputDevice * Keyboard ()
 
const InputDevice * Keyboard () const
 
 OsManager ()
 
 OsManager (const OsManager &other)=delete
 
 OsManager (const OsManager &&other)=delete
 
OsManager & operator= (const OsManager &other)=delete
 
virtual ~OsManager ()
 
virtual std::vector< InputDevice * > InputDevices ()
 A collection of all non-standard input devices recognized by this application.
 
virtual void Init ()
 Inits the SDL subsystem and catalogues input devices.
 
virtual void Destroy ()
 Cleans the SDL subsystem.
 
virtual const Event * PollEvent ()
 Polls next event from system event queue. Retuns nullptr if no event present.
 

Static Public Member Functions

static OsManager * Instance ()
 

Protected Member Functions

virtual bool TranslateSDLEvent (const SDL_Event &sdl_event, Event *&out_event)
 Translates SDL event structures to Event class objects.
 
virtual Event * TranslateEvent_MouseButton (const SDL_Event &sdl_event)
 
virtual Event * TranslateEvent_Keyboard (const SDL_Event &sdl_event)
 
virtual Event * TranslateEvent_MouseMoved (const SDL_Event &sdl_event)
 
virtual Event * TranslateEvent_MouseScroll (const SDL_Event &sdl_event)
 
virtual Event * TranslateEvent_JoyAxis (const SDL_Event &sdl_event)
 
virtual Event * TranslateEvent_JoyButton (const SDL_JoyButtonEvent &sdl_event)
 
virtual Event * TranslateEvent_JoyDevice (const SDL_JoyDeviceEvent &sdl_event)
 
virtual Event * TranslateEvent_WindowClosed (Window *window, uint32_t timestamp)
 
virtual Event * TranslateEvent_WindowResized (Window *window, const SDL_WindowEvent &wevent)
 
virtual Event * TranslateEvent_WindowFocus (Window *window, const SDL_WindowEvent &wevent, bool mouseonly, bool focus)
 

Protected Attributes

InputDevice * mMouse
 Mouse input device. Assumed standard and always present.
 
InputDevice * mKeyboard
 Keyboard input device. Assumed standard and always present.
 
std::vector< std::unique_ptr< InputDevice > > mInputDevices
 A collection of all non-standard input devices recognized by this application.
 
Event * mLastEvent = nullptr
 

Static Protected Attributes

static OsManager * sInstance = nullptr
 

Detailed Description

Class of which a single instance needs to be present for interaction with the operating system via SDL.

Constructor & Destructor Documentation

◆ OsManager() [1/3]

foray::osi::OsManager::OsManager ( )

◆ OsManager() [2/3]

foray::osi::OsManager::OsManager ( const OsManager &  other)
delete

◆ OsManager() [3/3]

foray::osi::OsManager::OsManager ( const OsManager &&  other)
delete

◆ ~OsManager()

virtual foray::osi::OsManager::~OsManager ( )
virtual

Member Function Documentation

◆ Destroy()

virtual void foray::osi::OsManager::Destroy ( )
virtual

Cleans the SDL subsystem.

◆ Init()

virtual void foray::osi::OsManager::Init ( )
virtual

Inits the SDL subsystem and catalogues input devices.

◆ InputDevices()

virtual std::vector< InputDevice * > foray::osi::OsManager::InputDevices ( )
virtual

A collection of all non-standard input devices recognized by this application.

◆ Instance()

static OsManager * foray::osi::OsManager::Instance ( )
inlinestatic

◆ Keyboard() [1/2]

InputDevice * foray::osi::OsManager::Keyboard ( )
inline

◆ Keyboard() [2/2]

const InputDevice * foray::osi::OsManager::Keyboard ( ) const
inline

◆ Mouse() [1/2]

InputDevice * foray::osi::OsManager::Mouse ( )
inline

◆ Mouse() [2/2]

const InputDevice * foray::osi::OsManager::Mouse ( ) const
inline

◆ operator=()

OsManager & foray::osi::OsManager::operator= ( const OsManager &  other)
delete

◆ PollEvent()

virtual const Event * foray::osi::OsManager::PollEvent ( )
virtual

Polls next event from system event queue. Retuns nullptr if no event present.

Remarks
The pointer returned is valid until the next time PollEvent() is invoked.

◆ TranslateEvent_JoyAxis()

virtual Event * foray::osi::OsManager::TranslateEvent_JoyAxis ( const SDL_Event &  sdl_event)
protectedvirtual

◆ TranslateEvent_JoyButton()

virtual Event * foray::osi::OsManager::TranslateEvent_JoyButton ( const SDL_JoyButtonEvent &  sdl_event)
protectedvirtual

◆ TranslateEvent_JoyDevice()

virtual Event * foray::osi::OsManager::TranslateEvent_JoyDevice ( const SDL_JoyDeviceEvent &  sdl_event)
protectedvirtual

◆ TranslateEvent_Keyboard()

virtual Event * foray::osi::OsManager::TranslateEvent_Keyboard ( const SDL_Event &  sdl_event)
protectedvirtual

◆ TranslateEvent_MouseButton()

virtual Event * foray::osi::OsManager::TranslateEvent_MouseButton ( const SDL_Event &  sdl_event)
protectedvirtual

◆ TranslateEvent_MouseMoved()

virtual Event * foray::osi::OsManager::TranslateEvent_MouseMoved ( const SDL_Event &  sdl_event)
protectedvirtual

◆ TranslateEvent_MouseScroll()

virtual Event * foray::osi::OsManager::TranslateEvent_MouseScroll ( const SDL_Event &  sdl_event)
protectedvirtual

◆ TranslateEvent_WindowClosed()

virtual Event * foray::osi::OsManager::TranslateEvent_WindowClosed ( Window *  window,
uint32_t  timestamp 
)
protectedvirtual

◆ TranslateEvent_WindowFocus()

virtual Event * foray::osi::OsManager::TranslateEvent_WindowFocus ( Window *  window,
const SDL_WindowEvent &  wevent,
bool  mouseonly,
bool  focus 
)
protectedvirtual

◆ TranslateEvent_WindowResized()

virtual Event * foray::osi::OsManager::TranslateEvent_WindowResized ( Window *  window,
const SDL_WindowEvent &  wevent 
)
protectedvirtual

◆ TranslateSDLEvent()

virtual bool foray::osi::OsManager::TranslateSDLEvent ( const SDL_Event &  sdl_event,
Event *&  out_event 
)
protectedvirtual

Translates SDL event structures to Event class objects.

Member Data Documentation

◆ mInputDevices

std::vector<std::unique_ptr<InputDevice> > foray::osi::OsManager::mInputDevices
protected

A collection of all non-standard input devices recognized by this application.

◆ mKeyboard

InputDevice* foray::osi::OsManager::mKeyboard
protected

Keyboard input device. Assumed standard and always present.

◆ mLastEvent

Event* foray::osi::OsManager::mLastEvent = nullptr
protected

◆ mMouse

InputDevice* foray::osi::OsManager::mMouse
protected

Mouse input device. Assumed standard and always present.

◆ sInstance

OsManager* foray::osi::OsManager::sInstance = nullptr
inlinestaticprotected

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