|  | /*!**************************************************************************** | 
|  |  | 
|  | @file         OGLES3/PVRTgles3Ext.h | 
|  | @ingroup      API_OGLES3 | 
|  | @copyright    Copyright (c) Imagination Technologies Limited. | 
|  | @brief        OpenGL ES 3.0 extensions | 
|  |  | 
|  | ******************************************************************************/ | 
|  | #ifndef _PVRTgles3Ext_H_ | 
|  | #define _PVRTgles3Ext_H_ | 
|  |  | 
|  | /*! | 
|  | @addtogroup   API_OGLES3 | 
|  | @{ | 
|  | */ | 
|  |  | 
|  | #if defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE==1 | 
|  | #import  <OpenGLES/ES3/gl.h> | 
|  | #import  <OpenGLES/ES3/glext.h> | 
|  | // No binary shaders are allowed on the iphone and so this value is not defined | 
|  | // Defining here allows for a more graceful fail of binary shader loading at runtime | 
|  | // which can be recovered from instead of fail at compile time | 
|  | #define GL_SGX_BINARY_IMG 0 | 
|  | #else | 
|  | #ifdef BUILD_OGLES31 | 
|  | #include <GLES3/gl31.h> | 
|  | #else | 
|  | #include <GLES3/gl3.h> | 
|  | #endif | 
|  | #endif | 
|  |  | 
|  | #if !defined(EGL_NOT_PRESENT) | 
|  | #define PVRGetProcAddress(x) eglGetProcAddress(#x) | 
|  | #endif | 
|  |  | 
|  | /**************************************************************************** | 
|  | ** Build options | 
|  | ****************************************************************************/ | 
|  |  | 
|  | #define GL_PVRTGLESEXT_VERSION 3 | 
|  |  | 
|  | /************************************************************************** | 
|  | ****************************** GL EXTENSIONS ****************************** | 
|  | **************************************************************************/ | 
|  |  | 
|  | /*!************************************************************************** | 
|  | @class         CPVRTgles3Ext | 
|  | @brief         A class for initialising and managing OGLES3 extensions | 
|  | ****************************************************************************/ | 
|  | class CPVRTgles3Ext | 
|  | { | 
|  | public: | 
|  | // typedef definition for pointers to functions returned by eglGetProcAddress | 
|  | typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXT)(GLenum, GLsizei, GLenum, GLsizei, GLsizei); | 
|  | typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEEXT)(GLenum, GLenum, GLenum, GLuint,GLint, GLsizei); | 
|  |  | 
|  | typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEIMG)(GLenum, GLsizei, GLenum, GLsizei, GLsizei); | 
|  | typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEIMG)(GLenum, GLenum, GLenum, GLuint,GLint, GLsizei); | 
|  |  | 
|  | // GL_IMG_multisampled_render_to_texture | 
|  | #if !defined(GL_IMG_multisampled_render_to_texture) | 
|  | #define GL_RENDERBUFFER_SAMPLES_IMG                 0x9133 | 
|  | #define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG   0x9134 | 
|  | #define GL_MAX_SAMPLES_IMG                          0x9135 | 
|  | #define GL_TEXTURE_SAMPLES_IMG                      0x9136 | 
|  | #endif | 
|  |  | 
|  | // GL_EXT_multisampled_render_to_texture | 
|  | #if !defined(GL_EXT_multisampled_render_to_texture) | 
|  | #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT           0x8D6C | 
|  | #define GL_RENDERBUFFER_SAMPLES_EXT                             0x8CAB | 
|  | #define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT               0x8D56 | 
|  | #define GL_MAX_SAMPLES_EXT                                      0x8D57 | 
|  | #endif | 
|  |  | 
|  | PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXT glRenderbufferStorageMultisampleEXT; | 
|  | PFNGLRENDERBUFFERSTORAGEMULTISAMPLEIMG glRenderbufferStorageMultisampleIMG; | 
|  | PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEEXT glFramebufferTexture2DMultisampleEXT; | 
|  | PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEIMG glFramebufferTexture2DMultisampleIMG; | 
|  |  | 
|  | /*!*********************************************************************** | 
|  | @brief		Initialises IMG extensions | 
|  | *************************************************************************/ | 
|  | void LoadExtensions(); | 
|  |  | 
|  | /*!*********************************************************************** | 
|  | @brief		Queries for support of an extension | 
|  | @param[in]	extension    Extension to query for | 
|  | @return		True if the extension is supported | 
|  | *************************************************************************/ | 
|  | static bool IsGLExtensionSupported(const char * const extension); | 
|  | }; | 
|  |  | 
|  | /*! @} */ | 
|  |  | 
|  | #endif /* _PVRTgles3Ext_H_ */ | 
|  |  | 
|  | /***************************************************************************** | 
|  | End of file (PVRTgles3Ext.h) | 
|  | *****************************************************************************/ | 
|  |  |