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::LxSGLES Class Referenceabstract

Used as parent for all OpenGL|ES implementations except iOS one. More...

#include <lxs.hpp>

Inheritance diagram for LxS::System::LxSGLES:
Inheritance graph
Collaboration diagram for LxS::System::LxSGLES:
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)
void Terminate ()
 Issue terminate request (shutdown)
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

EGLDisplay eglDisplay
 display handle
EGLContext eglContext
 context handle
EGLSurface eglSurface
 surface handle
::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)
 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

Used as parent for all OpenGL|ES implementations except iOS one.

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 file: