30 #ifndef __GLESPrerequisites_H__
31 #define __GLESPrerequisites_H__
36 #if (OGRE_PLATFORM == OGRE_PLATFORM_WIN32)
37 # if !defined( __MINGW32__ )
38 # ifndef WIN32_LEAN_AND_MEAN
39 # define WIN32_LEAN_AND_MEAN 1
42 # define NOMINMAX // required to stop windows.h messing up std::min
47 #if (OGRE_PLATFORM == OGRE_PLATFORM_APPLE_IOS)
48 # include <OpenGLES/ES1/gl.h>
49 # include <OpenGLES/ES1/glext.h>
51 # include <OpenGLES/EAGL.h>
53 # ifndef GL_GLEXT_PROTOTYPES
54 # define GL_GLEXT_PROTOTYPES
56 #elif (OGRE_PLATFORM == OGRE_PLATFORM_ANDROID)
57 # ifndef GL_GLEXT_PROTOTYPES
58 # define GL_GLEXT_PROTOTYPES
60 # include <GLES/glplatform.h>
62 # include <GLES/glext.h>
66 # include <GLES/glext.h>
67 # include <GLES/egl.h>
71 #if OGRE_NO_PVRTC_CODEC == 0
72 # ifndef GL_IMG_texture_compression_pvrtc
73 # define GL_IMG_texture_compression_pvrtc 1
74 # define GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG 0x8C00
75 # define GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG 0x8C01
76 # define GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG 0x8C02
77 # define GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG 0x8C03
82 #ifndef GL_EXT_texture_compression_dxt1
83 # define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0
84 # define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1
90 # ifndef GL_GLEXT_PROTOTYPES
91 extern PFNGLISRENDERBUFFEROESPROC glIsRenderbufferOES;
92 extern PFNGLBINDRENDERBUFFEROESPROC glBindRenderbufferOES;
93 extern PFNGLDELETERENDERBUFFERSOESPROC glDeleteRenderbuffersOES;
94 extern PFNGLGENRENDERBUFFERSOESPROC glGenRenderbuffersOES;
95 extern PFNGLRENDERBUFFERSTORAGEOESPROC glRenderbufferStorageOES;
96 extern PFNGLGETRENDERBUFFERPARAMETERIVOESPROC glGetRenderbufferParameterivOES;
97 extern PFNGLISFRAMEBUFFEROESPROC glIsFramebufferOES;
98 extern PFNGLBINDFRAMEBUFFEROESPROC glBindFramebufferOES;
99 extern PFNGLDELETEFRAMEBUFFERSOESPROC glDeleteFramebuffersOES;
100 extern PFNGLGENFRAMEBUFFERSOESPROC glGenFramebuffersOES;
101 extern PFNGLCHECKFRAMEBUFFERSTATUSOESPROC glCheckFramebufferStatusOES;
102 extern PFNGLFRAMEBUFFERRENDERBUFFEROESPROC glFramebufferRenderbufferOES;
103 extern PFNGLFRAMEBUFFERTEXTURE2DOESPROC glFramebufferTexture2DOES;
104 extern PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVOESPROC glGetFramebufferAttachmentParameterivOES;
105 extern PFNGLGENERATEMIPMAPOESPROC glGenerateMipmapOES;
106 extern PFNGLBLENDEQUATIONOESPROC glBlendEquationOES;
107 extern PFNGLBLENDFUNCSEPARATEOESPROC glBlendFuncSeparateOES;
108 extern PFNGLBLENDEQUATIONSEPARATEOESPROC glBlendEquationSeparateOES;
109 extern PFNGLMAPBUFFEROESPROC glMapBufferOES;
119 # define GL_BGRA 0x80E1
124 # define GL_FILL 0x1B02
132 #if (OGRE_PLATFORM == OGRE_PLATFORM_WIN32) && !defined(__MINGW32__) && !defined(OGRE_STATIC_LIB)
133 # ifdef OGRE_GLESPLUGIN_EXPORTS
134 # define _OgreGLESExport __declspec(dllexport)
136 # if defined( __MINGW32__ )
137 # define _OgreGLESExport
139 # define _OgreGLESExport __declspec(dllimport)
142 #elif defined ( OGRE_GCC_VISIBILITY )
143 # define _OgreGLESExport __attribute__ ((visibility("default")))
145 # define _OgreGLESExport
148 #if OGRE_COMPILER == OGRE_COMPILER_MSVC
149 #define __PRETTY_FUNCTION__ __FUNCTION__
153 #define DEBUG_(text) \
155 fprintf(stderr, "%s:%d: %s\n", __FUNCTION__, __LINE__, text); \
158 #define ENABLE_GL_CHECK 0
161 #define GL_CHECK_ERROR \
163 int e = glGetError(); \
166 const char * errorString = ""; \
169 case GL_INVALID_ENUM: errorString = "GL_INVALID_ENUM"; break; \
170 case GL_INVALID_VALUE: errorString = "GL_INVALID_VALUE"; break; \
171 case GL_INVALID_OPERATION: errorString = "GL_INVALID_OPERATION"; break; \
172 case GL_OUT_OF_MEMORY: errorString = "GL_OUT_OF_MEMORY"; break; \
176 sprintf(msgBuf, "OpenGL ES error 0x%04X %s in %s at line %i in %s \n", e, errorString, __PRETTY_FUNCTION__, __LINE__, __FILE__); \
177 LogManager::getSingleton().logMessage(msgBuf); \
181 #define GL_CHECK_ERROR {}
184 #define ENABLE_EGL_CHECK 1
187 #define EGL_CHECK_ERROR \
189 int e = eglGetError(); \
190 if ((e != 0) && (e != EGL_SUCCESS))\
193 sprintf(msgBuf, "EGL error 0x%04X in %s at line %i in %s \n", e, __PRETTY_FUNCTION__, __LINE__, __FILE__);\
194 LogManager::getSingleton().logMessage(msgBuf);\
198 #define EGL_CHECK_ERROR {}
SharedPtr< GLESTexture > GLESTexturePtr
Reference-counted shared pointer, used for objects where implicit destruction is required.