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