Labyrinth
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
LxS::System::LxS Class Referenceabstract

basic class for what implements core of OS-game interaction. (platform-specialized versions. Is guaranteed singleton. More...

#include <lxs.hpp>

Inheritance diagram for LxS::System::LxS:
Inheritance graph
Collaboration diagram for LxS::System::LxS:
Collaboration graph

Public Member Functions

void Halt ()
 it is not shutdown procedure; rather pause invoked from platform-main (used to implement for instance Android Run States)
 
void Resume ()
 Opposite to Halt.
 
void InitRoot ()
 Initialiize Root.
 
void DeinitRoot ()
 Deinitialize Root.
 
bool GLQueueEmpty ()
 Checks whenever OpenGL function queue is empty.
 
int EnqueueOGLFunction (GLFunction glf)
 Call OpenGL from man thread Passes function pointer to execute. It is than pushed to GL function queue (func_queue) and is guaranteed to be executed in main GL thread function is removed from queue upon execution;.
 
GLuint ReadPixel (float x, float y)
 
 LxS ()
 default constructor
 
void Terminate ()
 Issue terminate request (shutdown)
 
virtual ~LxS ()
 global destructor
 
virtual void DrawFrame ()=0
 ways of drawing frame differs from platform to platform
 
virtual void Init ()=0
 ways of initializing context differs from platform to platform
 
virtual void Deinit ()=0
 ways of deinitializing context differs from platform to platform
 

Static Public Member Functions

static LxSExposeGlobalInstance ()
 Expose pointer to global instance In some situations it is required to issue call to global LxS instance. I.e. when shutdown is requested from UI or when opengl function must be called in global main opengl thread. (see documentation for func_queue member)
 

Protected Member Functions

float RecalculateX (int x)
 Given x coord in pixels convert it to centimeters from edge.
 
float RecalculateY (int y)
 Given Y coord in pixels from top edge convert it to centimeters from bottom edge.
 
void PassDragEventAsAngularDelta (int x, int y)
 Used for implementing "touch and rotate interface" user idiom.
 
int ExecuteGLFunctionQueue ()
 typically invoked before/after Render by LxS class implementation. Typically executes just one function from func_queue at a time
 
int EraseGLFunctionQueue ()
 used during shutdown, to clear queue before exiting
 

Protected Attributes

::LxS::CoreGraphics::GLCamera o_Camera
 Global camera object (represents global camera setup object used to render current scene)
 
int animating
 Is application active (i.e. in foregground)
 
::LxS::Windowing::Rootp_Root
 Root window.
 
float invDPC
 inverted dots per centimeter (convenient
 
int width
 width of whole window/screen
 
int height
 height of whole window/screen
 
bool Dragging
 is user trying to move something on the screen?
 
std::deque< GLFunctionfunc_queue
 Queue of functions that MUST be executed in root thread Queue of functions that MUST be executed in root thread (generally OpenGL code). For details look at threading documentation
 
MyMutex func_queue_mtx
 sync object for func_queue
 
bool terminate_request_issued
 for implementation of shutdown procedure
 

Static Protected Attributes

static LxSglobal_instance = 0
 this us used to make sure that it is a singleton - allows extract single global instance and disallows to create more than one instance
 

Detailed Description

basic class for what implements core of OS-game interaction. (platform-specialized versions. Is guaranteed singleton.

Member Function Documentation

GLuint LxS::System::LxS::ReadPixel ( float  x,
float  y 
)

Read pixel from current GL buffer (position is indicated in centimeters from screen bottom-left edge)


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