| /*!**************************************************************************** | |
| @file KEGL/PVRShellAPI.h | |
| @ingroup API_KEGL | |
| @copyright Copyright (c) Imagination Technologies Limited. | |
| @brief 3D API context management for KEGL. | |
| @details Makes programming for 3D APIs easier by wrapping surface | |
| initialization, Texture allocation and other functions for use by a demo. | |
| ******************************************************************************/ | |
| #ifndef __PVRSHELLAPI_H_ | |
| #define __PVRSHELLAPI_H_ | |
| /**************************************************************************** | |
| ** 3D API header files | |
| ****************************************************************************/ | |
| #if defined(BUILD_OGLES2) | |
| #include <GLES2/gl2.h> | |
| #include <GLES2/gl2ext.h> | |
| #include <EGL/egl.h> | |
| #include <EGL/eglext.h> | |
| #elif defined(BUILD_OGLES3) | |
| #include <GLES3/gl3.h> | |
| #include <GLES2/gl2ext.h> | |
| #include <GLES3/gl3ext.h> | |
| #include <EGL/egl.h> | |
| #include <EGL/eglext.h> | |
| #elif defined(BUILD_OGL) | |
| #define SUPPORT_OPENGL | |
| #if defined(_WIN32) | |
| #include <windows.h> | |
| #endif | |
| #include <GL/gl.h> | |
| #include <EGL/egl.h> | |
| #include <EGL/eglext.h> | |
| #else | |
| #include <EGL/egl.h> | |
| #include <EGL/eglext.h> | |
| #include <GLES/gl.h> | |
| #include <GLES/glext.h> | |
| #include <GLES/glplatform.h> | |
| #endif | |
| /*!*************************************************************************** | |
| @addtogroup API_KEGL | |
| @brief KEGL API | |
| @{ | |
| ****************************************************************************/ | |
| /*!*************************************************************************** | |
| @class PVRShellInitAPI | |
| @brief Initialisation interface with specific API. | |
| ****************************************************************************/ | |
| class PVRShellInitAPI | |
| { | |
| public: | |
| EGLDisplay m_EGLDisplay; | |
| EGLSurface m_EGLWindow; | |
| EGLContext m_EGLContext; | |
| EGLConfig m_EGLConfig; | |
| EGLint m_MajorVersion, m_MinorVersion; | |
| bool m_bPowerManagementSupported; | |
| EGLint m_iRequestedConfig; | |
| EGLint m_iConfig; | |
| EGLNativeDisplayType m_NDT; | |
| EGLNativePixmapType m_NPT; | |
| EGLNativeWindowType m_NWT; | |
| public: | |
| PVRShellInitAPI() : m_bPowerManagementSupported(false), m_iRequestedConfig(0), m_iConfig(0) {} | |
| EGLConfig SelectEGLConfiguration(const PVRShellData * const pData); | |
| const char *StringFrom_eglGetError() const; | |
| #if defined(BUILD_OGLES) || defined(BUILD_OGLES2) | |
| protected: | |
| typedef void (GL_APIENTRY * PFNGLDISCARDFRAMEBUFFEREXT)(GLenum target, GLsizei numAttachments, const GLenum *attachments); | |
| PFNGLDISCARDFRAMEBUFFEREXT glDiscardFramebufferEXT; | |
| #endif | |
| }; | |
| /*! @} */ | |
| #endif // __PVRSHELLAPI_H_ | |
| /***************************************************************************** | |
| End of file (PVRShellAPI.h) | |
| *****************************************************************************/ | |