| /*!**************************************************************************** |
| |
| @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) |
| *****************************************************************************/ |
| |