17b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens/*!**************************************************************************** 27b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 37b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @file Shell/PVRShellImpl.h 47b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @copyright Copyright (c) Imagination Technologies Limited. 57b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @brief Makes programming for 3D APIs easier by wrapping surface 67b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens initialization, texture allocation and other functions for use by a demo. 77b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 87b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens******************************************************************************/ 97b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 107b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens#ifndef __PVRSHELLIMPL_H_ 117b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens#define __PVRSHELLIMPL_H_ 127b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 137b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens/***************************************************************************** 147b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens** Build options 157b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens*****************************************************************************/ 167b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 177b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 187b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens/***************************************************************************** 197b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens** Macros 207b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens*****************************************************************************/ 217b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens#define FREE(X) { if(X) { free(X); (X)=0; } } 227b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 237b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens#ifndef _ASSERT 247b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens#define _ASSERT(X) /**/ 257b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens#endif 267b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 277b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens/***************************************************************************** 287b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens** Defines 297b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens*****************************************************************************/ 307b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens#define STR_WNDTITLE (" - Build ") 317b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 327b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens/*!*************************************************************************** 337b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @struct PVRShellData 347b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @brief Holds PVRShell internal data. 357b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens*****************************************************************************/ 367b21f276fa91ad62fd2055844688b07829f12205Nicolas Capensstruct PVRShellData 377b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens{ 387b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens // Shell Interface Data 397b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens char *pszAppName; /*!< Application name string. */ 407b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens char *pszExitMessage; /*!< Exit message string. */ 417b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens int nShellDimX; /*!< Width in pixels. */ 427b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens int nShellDimY; /*!< Height in pixels. */ 437b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens int nShellPosX; /*!< X position of the window. */ 447b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens int nShellPosY; /*!< Y position of the window. */ 457b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens bool bFullScreen; /*!< Fullscreen boolean. */ 467b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens bool bLandscape; /*!< Landscape orientation boolean. false = portrait orientation. */ 477b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens bool bNeedPbuffer; /*!< True if pixel buffer is needed. */ 487b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens bool bNeedZbuffer; /*!< True if Z buffer is needed. */ 497b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens bool bNeedStencilBuffer; /*!< True if stencil buffer is needed. */ 507b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens bool bNeedPixmap; /*!< True if pixmap is needed. */ 517b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens bool bNeedPixmapDisableCopy; /*!< Disables copy if true, because pixmaps are used. */ 527b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens bool bLockableBackBuffer; /*!< DX9 only. Enable the use of D3DPRESENTFLAG_LOCKABLE_BACKBUFFER. */ 537b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens bool bSoftwareRender; /*!< Enable the use of software rendering. */ 547b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens bool bNeedAlphaFormatPre; /*!< EGL only: If true, creates the EGL surface with EGL_ALPHA_FORMAT_PRE. */ 557b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens bool bUsingPowerSaving; /*!< Use power saving mode when device is not in use. */ 567b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens bool bOutputInfo; /*!< Enable information to be output via PVRShellOutputDebug. For example, 577b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens the depth of the colour surface created, extenstions supported and 587b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens dimensions of the surface created. */ 597b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens bool bNoShellSwapBuffer; /*!< Disable eglswapbuffers at the end of each frame. */ 607b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens int nSwapInterval; /*!< Interval to wait for monitor vertical sync. */ 617b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens int nInitRepeats; /*!< Number of times to reinitialise. */ 627b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens int nDieAfterFrames; /*!< Set shell to quit after this number of frames (-1 to disable) */ 637b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens float fDieAfterTime; /*!< Set shell to quit after this number of seconds (-1 to disable). */ 647b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens int nAASamples; /*!< Number of anti-aliasing samples to have. 0 disables anti-aliasing. */ 657b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens int nColorBPP; /*!< Color buffer size. */ 667b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens int nDepthBPP; /*!< Depth buffer size. */ 677b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens int nCaptureFrameStart; /*!< The frame to start capturing screenshots from. */ 687b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens int nCaptureFrameStop; /*!< The frame to stop capturing screenshots from. */ 697b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens int nCaptureFrameScale; /*!< Save screenshots scale factor. 1 for no scaling. */ 707b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens int nPriority; /*!< EGL: If supported sets the egl context priority; 717b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 0 for low, 1 for med and 2 for high. */ 727b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens bool bForceFrameTime; /*!< Overrides PVRShellGetTime to force specified frame time. May cause 737b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens problems if PVRShellGetTime is called multiple times in a frame. */ 747b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens int nFrameTime; /*!< How long for each frame time to last (in ms). */ 757b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens bool bDiscardFrameColor; /*!< Discard color data at the end of a render. */ 767b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens bool bDiscardFrameDepth; /*!< Discard depth data at the end of a render. */ 777b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens bool bDiscardFrameStencil; /*!< Discard stencil data at the end of a render. */ 787b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 797b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens // Internal Data 807b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens bool bShellPosWasDefault; /*!< Internal. Default position for the shell was used. */ 817b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens int nShellCurFrameNum; /*!< Internal. Current frame number. */ 827b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens#ifdef PVRSHELL_FPS_OUTPUT 837b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens bool bOutputFPS; /*!< Output frames per second. */ 847b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens#endif 857b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens}; 867b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 877b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens/*!*************************************************************************** 887b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @class PVRShellCommandLine 897b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @brief Command-line interpreter 907b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens*****************************************************************************/ 917b21f276fa91ad62fd2055844688b07829f12205Nicolas Capensclass PVRShellCommandLine 927b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens{ 937b21f276fa91ad62fd2055844688b07829f12205Nicolas Capenspublic: 947b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens char *m_psOrig, *m_psSplit; 957b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens SCmdLineOpt *m_pOpt; 967b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens int m_nOptLen, m_nOptMax; 977b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 987b21f276fa91ad62fd2055844688b07829f12205Nicolas Capenspublic: 997b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens /*!*********************************************************************** 1007b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @brief Constructor 1017b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens *************************************************************************/ 1027b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens PVRShellCommandLine(); 1037b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 1047b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens /*!*********************************************************************** 1057b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @brief Destructor 1067b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens *************************************************************************/ 1077b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens ~PVRShellCommandLine(); 1087b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 1097b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens /*!*********************************************************************** 1107b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @brief Set command-line options to pStr 1117b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @param[in] pStr Input string 1127b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens *************************************************************************/ 1137b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens void Set(const char *pStr); 1147b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 1157b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens /*!*********************************************************************** 1167b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @brief Prepend command-line options to m_psOrig 1177b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @param[in] pStr Input string 1187b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens *************************************************************************/ 1197b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens void Prefix(const char *pStr); 1207b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 1217b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens /*!*********************************************************************** 1227b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @brief Prepend command-line options to m_psOrig from a file 1237b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @param[in] pFileName Input string 1247b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens *************************************************************************/ 1257b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens bool PrefixFromFile(const char *pFileName); 1267b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 1277b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens /*!*********************************************************************** 1287b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @brief Parse m_psOrig for command-line options and store them in m_pOpt 1297b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens *************************************************************************/ 1307b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens void Parse(); 1317b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 1327b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens /*!*********************************************************************** 1337b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @brief Apply the command-line options to shell 1347b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @param[in] shell 1357b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens *************************************************************************/ 1367b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens void Apply(PVRShell &shell); 1377b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens}; 1387b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 1397b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens/*!**************************************************************************** 1407b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @enum EPVRShellState 1417b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @brief Current Shell state 1427b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens*****************************************************************************/ 1437b21f276fa91ad62fd2055844688b07829f12205Nicolas Capensenum EPVRShellState { 1447b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens ePVRShellInitApp, /*!< Initialise app */ 1457b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens ePVRShellInitInstance, /*!< Initialise instance */ 1467b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens ePVRShellRender, /*!< Render */ 1477b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens ePVRShellReleaseView, /*!< Release View */ 1487b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens ePVRShellReleaseAPI, /*!< Release API */ 1497b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens ePVRShellReleaseOS, /*!< Release Operating System */ 1507b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens ePVRShellQuitApp, /*!< Quit App */ 1517b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens ePVRShellExit /*!< Exit */ 1527b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens}; 1537b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 1547b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens/*!*************************************************************************** 1557b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @class PVRShellInit 1567b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @brief The PVRShell initialisation class 1577b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens ****************************************************************************/ 1587b21f276fa91ad62fd2055844688b07829f12205Nicolas Capensclass PVRShellInit : public PVRShellInitAPI, public PVRShellInitOS 1597b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens{ 1607b21f276fa91ad62fd2055844688b07829f12205Nicolas Capenspublic: 1617b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens friend class PVRShell; 1627b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens friend class PVRShellInitOS; 1637b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens friend class PVRShellInitAPI; 1647b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 1657b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens PVRShell *m_pShell; /*!< Our PVRShell class */ 1667b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens PVRShellCommandLine m_CommandLine; /*!< Our Command-line class */ 1677b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 1687b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens bool gShellDone; /*!< Indicates that the application has finished */ 1697b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens EPVRShellState m_eState; /*!< Current PVRShell state */ 1707b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 1717b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens // Key handling 1727b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens PVRShellKeyName nLastKeyPressed; /*!< Holds the last key pressed */ 1737b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens PVRShellKeyName m_eKeyMapLEFT; /*!< Holds the value to be returned when PVRShellKeyNameLEFT is requested */ 1747b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens PVRShellKeyName m_eKeyMapUP; /*!< Holds the value to be returned when PVRShellKeyNameUP is requested */ 1757b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens PVRShellKeyName m_eKeyMapRIGHT; /*!< Holds the value to be returned when PVRShellKeyNameRIGHT is requested */ 1767b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens PVRShellKeyName m_eKeyMapDOWN; /*!< Holds the value to be returned when PVRShellKeyNameDOWN is requested */ 1777b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 1787b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens // Read and Write path 1797b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens char *m_pReadPath; /*!<Holds the path where the application will read the data from */ 1807b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens char *m_pWritePath; /*!<Holds the path where the application will write the data to */ 1817b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 1827b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens#ifdef PVRSHELL_FPS_OUTPUT 1837b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens // Frames per second (FPS) 1847b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens int m_i32FpsFrameCnt, m_i32FpsTimePrev; 1857b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens#endif 1867b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 1877b21f276fa91ad62fd2055844688b07829f12205Nicolas Capenspublic: 1887b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 1897b21f276fa91ad62fd2055844688b07829f12205Nicolas Capensprotected: 1907b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens float m_vec2PointerLocation[2]; 1917b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens float m_vec2PointerLocationStart[2]; 1927b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens float m_vec2PointerLocationEnd[2]; 1937b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 1947b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens // Touch handling 1957b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens bool m_bTouching; 1967b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 1977b21f276fa91ad62fd2055844688b07829f12205Nicolas Capenspublic: 1987b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens /*!*********************************************************************** 1997b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @brief Constructor 2007b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens *************************************************************************/ 2017b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens PVRShellInit(); 2027b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 2037b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens /*!*********************************************************************** 2047b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @brief Destructor 2057b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens *************************************************************************/ 2067b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens ~PVRShellInit(); 2077b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 2087b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens /*!*********************************************************************** 2097b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @brief PVRShell Initialisation. 2107b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @return True on success and false on failure 2117b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens *************************************************************************/ 2127b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens bool Init(); 2137b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 2147b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens /*!*********************************************************************** 2157b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @brief PVRShell Deinitialisation. 2167b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens *************************************************************************/ 2177b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens void Deinit(); 2187b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 2197b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens /*!*********************************************************************** 2207b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @param[in] str A string containing the command-line 2217b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @brief Receives the command-line from the application. 2227b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens *************************************************************************/ 2237b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens void CommandLine(const char *str); 2247b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 2257b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens /*!*********************************************************************** 2267b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @brief Receives the command-line from the application. 2277b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @param[in] argc Number of strings in argv 2287b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @param[in] argv An array of strings 2297b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens *************************************************************************/ 2307b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens void CommandLine(int argc, char **argv); 2317b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 2327b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens /*!*********************************************************************** 2337b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @brief Return 'true' if the specific key has been pressed. 2347b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @param[in] key The key we're querying for 2357b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens *************************************************************************/ 2367b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens bool DoIsKeyPressed(const PVRShellKeyName key); 2377b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 2387b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens /*!*********************************************************************** 2397b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @param[in] key The key that has been pressed 2407b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @brief Used by the OS-specific code to tell the Shell that a key has been pressed. 2417b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens *************************************************************************/ 2427b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens void KeyPressed(PVRShellKeyName key); 2437b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 2447b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens /*!*********************************************************************** 2457b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @brief Used by the OS-specific code to tell the Shell that a touch has began at a location. 2467b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @param[in] vec2Location The position of a click/touch on the screen when it first touches. 2477b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens *************************************************************************/ 2487b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens void TouchBegan(const float vec2Location[2]); 2497b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 2507b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens /*!*********************************************************************** 2517b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @brief Used by the OS-specific code to tell the Shell that a touch has began at a location. 2527b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @param[in] vec2Location The position of the pointer/touch pressed on the screen. 2537b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens *************************************************************************/ 2547b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens void TouchMoved(const float vec2Location[2]); 2557b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 2567b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens /*!*********************************************************************** 2577b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @brief Used by the OS-specific code to tell the Shell that the current touch has ended at a location. 2587b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @param[in] vec2Location The position of the pointer/touch on the screen when it is released. 2597b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens *************************************************************************/ 2607b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens void TouchEnded(const float vec2Location[2]); 2617b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 2627b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens /*!*********************************************************************** 2637b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @brief Used by the OS-specific code to tell the Shell where to read external files from. 2647b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @return A path the application is capable of reading from. 2657b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens *************************************************************************/ 2667b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens const char *GetReadPath() const; 2677b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 2687b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens /*!*********************************************************************** 2697b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @brief Used by the OS-specific code to tell the Shell where to write to. 2707b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @return A path the applications is capable of writing to 2717b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens *************************************************************************/ 2727b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens const char *GetWritePath() const; 2737b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 2747b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens /*!****************************************************************************** 2757b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @brief Sets the default app name (to be displayed by the OS) 2767b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @param[in] str The application name 2777b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens *******************************************************************************/ 2787b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens void SetAppName(const char * const str); 2797b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 2807b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens /*!*********************************************************************** 2817b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @brief Set the path to where the application expects to read from. 2827b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @param[in] str The read path 2837b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens *************************************************************************/ 2847b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens void SetReadPath(const char * const str); 2857b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 2867b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens /*!*********************************************************************** 2877b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @brief Set the path to where the application expects to write to. 2887b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @param[in] str The write path 2897b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens *************************************************************************/ 2907b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens void SetWritePath(const char * const str); 2917b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 2927b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens /*!*********************************************************************** 2937b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @brief Called from the OS-specific code to perform the render. 2947b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens When this function fails the application will quit. 2957b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens *************************************************************************/ 2967b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens bool Run(); 2977b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 2987b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens /*!*********************************************************************** 2997b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @brief When prefOutputInfo is set to true this function outputs 3007b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens various pieces of non-API dependent information via 3017b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens PVRShellOutputDebug. 3027b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens *************************************************************************/ 3037b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens void OutputInfo(); 3047b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 3057b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens /*!*********************************************************************** 3067b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @brief When prefOutputInfo is set to true this function outputs 3077b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens various pieces of API dependent information via 3087b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens PVRShellOutputDebug. 3097b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens *************************************************************************/ 3107b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens void OutputAPIInfo(); 3117b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 3127b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens#ifdef PVRSHELL_FPS_OUTPUT 3137b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens /*!**************************************************************************** 3147b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @brief Calculates a value for frames-per-second (FPS). 3157b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens *****************************************************************************/ 3167b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens void FpsUpdate(); 3177b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens#endif 3187b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 3197b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens /* 3207b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens OS functionality 3217b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens */ 3227b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 3237b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens /*!*********************************************************************** 3247b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @brief Initialisation for OS-specific code. 3257b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens *************************************************************************/ 3267b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens void OsInit(); 3277b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 3287b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens /*!*********************************************************************** 3297b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @brief Saves instance handle and creates main window 3307b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens In this function, we save the instance handle in a global variable and 3317b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens create and display the main program window. 3327b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens *************************************************************************/ 3337b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens bool OsInitOS(); 3347b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 3357b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens /*!*********************************************************************** 3367b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @brief Destroys main window 3377b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens *************************************************************************/ 3387b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens void OsReleaseOS(); 3397b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 3407b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens /*!*********************************************************************** 3417b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @brief Destroys main window 3427b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens *************************************************************************/ 3437b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens void OsExit(); 3447b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 3457b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens /*!*********************************************************************** 3467b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @brief Perform API initialization and bring up window / fullscreen 3477b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens *************************************************************************/ 3487b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens bool OsDoInitAPI(); 3497b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 3507b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens /*!*********************************************************************** 3517b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @brief Clean up after we're done 3527b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens *************************************************************************/ 3537b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens void OsDoReleaseAPI(); 3547b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 3557b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens /*!*********************************************************************** 3567b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @brief Main message loop / render loop 3577b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens *************************************************************************/ 3587b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens void OsRenderComplete(); 3597b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 3607b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens /*!*********************************************************************** 3617b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @brief When using pixmaps, copy the render to the display 3627b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens *************************************************************************/ 3637b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens bool OsPixmapCopy(); 3647b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 3657b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens /*!*********************************************************************** 3667b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @brief Called from InitAPI() to get the NativeDisplayType 3677b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens *************************************************************************/ 3687b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens void *OsGetNativeDisplayType(); 3697b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 3707b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens /*!*********************************************************************** 3717b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @brief Called from InitAPI() to get the NativePixmapType 3727b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens *************************************************************************/ 3737b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens void *OsGetNativePixmapType(); 3747b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 3757b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens /*!*********************************************************************** 3767b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @brief Called from InitAPI() to get the NativeWindowType 3777b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens *************************************************************************/ 3787b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens void *OsGetNativeWindowType(); 3797b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 3807b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens /*!*********************************************************************** 3817b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @brief Retrieves OS-specific data 3827b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @param[in] prefName Name of preference to get 3837b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @param[out] pn A pointer set to the preference. 3847b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @return true on success 3857b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens *************************************************************************/ 3867b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens bool OsGet(const prefNameIntEnum prefName, int *pn); 3877b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 3887b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens /*!*********************************************************************** 3897b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @brief Retrieves OS-specific data 3907b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @param[in] prefName Name of value to get 3917b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @param[out] pp A pointer set to the value asked for 3927b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @return true on success 3937b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens *************************************************************************/ 3947b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens bool OsGet(const prefNamePtrEnum prefName, void **pp); 3957b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 3967b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens /*!*********************************************************************** 3977b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @brief Sets OS-specific data 3987b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @param[in] prefName Name of preference to set to value 3997b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @param[in] value Value 4007b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @return true for success 4017b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens *************************************************************************/ 4027b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens bool OsSet(const prefNameBoolEnum prefName, const bool value); 4037b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 4047b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens /*!*********************************************************************** 4057b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @brief Sets OS-specific data 4067b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @param[in] prefName Name of value to set 4077b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @param[in] i32Value The value to set our named value to 4087b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @return true on success 4097b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens *************************************************************************/ 4107b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens bool OsSet(const prefNameIntEnum prefName, const int i32Value); 4117b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 4127b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens /*!*********************************************************************** 4137b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @brief Prints a debug string 4147b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @param[in] str The debug string to display 4157b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens *************************************************************************/ 4167b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens void OsDisplayDebugString(char const * const str); 4177b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 4187b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens /*!*********************************************************************** 4197b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @brief Gets the time in milliseconds 4207b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens *************************************************************************/ 4217b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens unsigned long OsGetTime(); 4227b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 4237b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens /* 4247b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens API functionality 4257b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens */ 4267b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens /*!*********************************************************************** 4277b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @brief Initialisation for API-specific code. 4287b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens *************************************************************************/ 4297b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens bool ApiInitAPI(); 4307b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 4317b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens /*!*********************************************************************** 4327b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @brief Releases all resources allocated by the API. 4337b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens *************************************************************************/ 4347b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens void ApiReleaseAPI(); 4357b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 4367b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens /*!*********************************************************************** 4377b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @brief API-specific function to store the current content of the 4387b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens FrameBuffer into the memory allocated by the user. 4397b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @param[in] Width Width of the region to capture 4407b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @param[in] Height Height of the region to capture 4417b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @param[out] pBuf A buffer to put the screen capture into 4427b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @return true on success 4437b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens *************************************************************************/ 4447b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens bool ApiScreenCaptureBuffer(int Width,int Height,unsigned char *pBuf); 4457b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 4467b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens /*!*********************************************************************** 4477b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @brief Perform API operations required after a frame has finished (e.g., flipping). 4487b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens *************************************************************************/ 4497b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens void ApiRenderComplete(); 4507b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 4517b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens /*!*********************************************************************** 4527b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @brief Set preferences which are specific to the API. 4537b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @param[in] prefName Name of preference to set 4547b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @param[out] i32Value Value to set it to 4557b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens *************************************************************************/ 4567b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens bool ApiSet(const prefNameIntEnum prefName, const int i32Value); 4577b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 4587b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens /*!*********************************************************************** 4597b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @brief Get parameters which are specific to the API. 4607b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @param[in] prefName Name of value to get 4617b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @param[out] pn A pointer set to the value asked for 4627b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens *************************************************************************/ 4637b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens bool ApiGet(const prefNameIntEnum prefName, int *pn); 4647b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 4657b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens /*!*********************************************************************** 4667b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @brief Get parameters which are specific to the API. 4677b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @param[in] prefName Name of value to get 4687b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @param[out] pp A pointer set to the value asked for 4697b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens *************************************************************************/ 4707b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens bool ApiGet(const prefNamePtrEnum prefName, void **pp); 4717b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 4727b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 4737b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens /*!*********************************************************************** 4747b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens @brief Run specific API code to perform the operations requested in preferences. 4757b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens *************************************************************************/ 4767b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens void ApiActivatePreferences(); 4777b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens}; 4787b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 4797b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens#endif /* __PVRSHELLIMPL_H_ */ 4807b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 4817b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens/***************************************************************************** 4827b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens End of file (PVRShellImpl.h) 4837b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens*****************************************************************************/ 4847b21f276fa91ad62fd2055844688b07829f12205Nicolas Capens 485