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