blob: 6268b99521f01cbdf72baa4c6f4c86450e395a1f [file] [log] [blame]
/*!****************************************************************************
@file Windows/PVRShellOS.h
@ingroup OS_Windows
@copyright Copyright (c) Imagination Technologies Limited.
@brief Initialization for the shell for the Windows OS.
@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 <windows.h>
// The following defines are for Windows PC platforms only
#if defined(_WIN32)
// Enable the following 2 lines for memory leak checking - also see WinMain()
#define _CRTDBG_MAP_ALLOC
#include <crtdbg.h>
#endif
#define PVRSHELL_DIR_SYM '\\'
#define vsnprintf _vsnprintf
/*!
@addtogroup OS_Windows
@brief Windows OS
@details The following table illustrates how key codes are mapped in Windows:
<table>
<tr><th> Key code </th><th> KeyPressed (PVRShell) </th></tr>
<tr><td> ESCAPE </td><td> PVRShellKeyNameQUIT </td></tr>
<tr><td> UP </td><td> m_eKeyMapUP </td></tr>
<tr><td> DOWN </td><td> m_eKeyMapDOWN </td></tr>
<tr><td> LEFT </td><td> m_eKeyMapLEFT </td></tr>
<tr><td> RIGHT </td><td> m_eKeyMapRIGHT </td></tr>
<tr><td> SPACE </td><td> PVRShellKeyNameSELECT </td></tr>
<tr><td> '1' </td><td> PVRShellKeyNameACTION1 </td></tr>
<tr><td> '2' </td><td> PVRShellKeyNameACTION2 </td></tr>
<tr><td> F11 </td><td> PVRShellKeyNameScreenshot </td></tr>
</table>
@{
*/
/*!***************************************************************************
@class PVRShellInitOS
@brief Interface with specific Operating System.
*****************************************************************************/
class PVRShellInitOS
{
public:
HDC m_hDC;
HWND m_hWnd;
// Pixmap support: variables for the pixmap
HBITMAP m_hBmPixmap, m_hBmPixmapOld;
HDC m_hDcPixmap;
HACCEL m_hAccelTable;
HINSTANCE m_hInstance;
int m_nCmdShow;
bool m_bHaveFocus;
unsigned int m_u32ButtonState;
public:
ATOM MyRegisterClass();
};
/*! @} */
#endif /* _PVRSHELLOS_ */
/*****************************************************************************
End of file (PVRShellOS.h)
*****************************************************************************/