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