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