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 | Friends | List of all members
LxS::System::AndroidLxS Class Reference

Android OS-interface class. More...

#include <androidlxs.hpp>

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

Public Member Functions

void HandleEventQueue ()
 android event queue handler
 
 AndroidLxS (struct android_app *_app)
 proper constructor
 
virtual void DrawFrame ()
 ways of drawing frame differs from platform to platform
 
virtual void Init ()
 ways of initializing context differs from platform to platform
 
virtual void Deinit ()
 ways of deinitializing context differs from platform to platform
 
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)
 

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

void HandleCommand (int32_t cmd)
 process an input command
 
void HandleInput (AInputEvent *event)
 process input data
 
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

struct android_app * app
 android app handle
 
ASensorManager * sensorManager
 android sensor managing object
 
const ASensor * gyroscopeSensor
 gyroscope sensor
 
ASensorEventQueue * sensorEventQueue
 sensor event queue
 
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)
 
::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
 

Friends

class ::LxS::System::AssetLoader
 
void engine_handle_cmd (struct android_app *app, int32_t cmd)
 
int32_t engine_handle_input (struct android_app *app, AInputEvent *event)
 

Detailed Description

Android OS-interface class.

Member Function Documentation

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

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

Friends And Related Function Documentation

void engine_handle_cmd ( struct android_app *  app,
int32_t  cmd 
)
friend

! Process the next main command.

int32_t engine_handle_input ( struct android_app *  app,
AInputEvent *  event 
)
friend

! Process the next input event.


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