/*!**************************************************************************** @file LinuxX11/PVRShellOS.h @ingroup OS_LinuxX11 @copyright Copyright (c) Imagination Technologies Limited. @brief Initialization for the shell for LinuxX11. @details Makes programming for 3D APIs easier by wrapping surface initialization, Texture allocation and other functions for use by a demo. ******************************************************************************/ #ifndef _PVRSHELLOS_ #define _PVRSHELLOS_ #include "X11/Xlib.h" #include "X11/Xutil.h" #ifdef BUILD_OGL #include "X11/extensions/xf86vmode.h" #endif #define PVRSHELL_DIR_SYM '/' #define _stricmp strcasecmp /*! @addtogroup OS_LinuxX11 @brief LinuxX11 OS @details The following table illustrates how key codes are mapped in LinuxX11: <table> <tr><th> Key code </th><th> nLastKeyPressed (PVRShell) </th></tr> <tr><td> Esc </td><td> PVRShellKeyNameQUIT </td></tr> <tr><td> F11 </td><td> PVRShellKeyNameScreenshot </td></tr> <tr><td> Enter </td><td> PVRShellKeyNameSELECT </td></tr> <tr><td> '1' </td><td> PVRShellKeyNameACTION1 </td></tr> <tr><td> '2' </td><td> PVRShellKeyNameACTION2 </td></tr> <tr><td> Up arrow </td><td> m_eKeyMapUP </td></tr> <tr><td> Down arrow </td><td> m_eKeyMapDOWN </td></tr> <tr><td> Left arrow </td><td> m_eKeyMapLEFT </td></tr> <tr><td> Right arrow </td><td> m_eKeyMapRIGHT </td></tr> </table> @{ */ /*!*************************************************************************** @class PVRShellInitOS @brief Interface with specific Operative System. *****************************************************************************/ class PVRShellInitOS { public: Display* m_X11Display; long m_X11Screen; XVisualInfo* m_X11Visual; Colormap m_X11ColorMap; Window m_X11Window; timeval m_StartTime; #ifdef BUILD_OGL XF86VidModeModeLine m_OriginalMode; // modeline that was active at the starting point of this aplication int m_i32OriginalModeDotClock; #endif // Pixmap support: variables for the pixmap Pixmap m_X11Pixmap; GC m_X11GC; unsigned int m_u32ButtonState; // 1 = left, 2 = right, 4 = middle public: int OpenX11Window(const PVRShell &shell); void CloseX11Window(); }; /*! @} */ #endif /* _PVRSHELLOS_ */ /***************************************************************************** End of file (PVRShellOS.h) *****************************************************************************/