1 // Copyright (C) 2015 Patryk Nadrowski
\r
2 // This file is part of the "Irrlicht Engine".
\r
3 // For conditions of distribution and use, see copyright notice in irrlicht.h
\r
5 #ifndef __C_OGLES_COMMON_H_INCLUDED__
\r
6 #define __C_OGLES_COMMON_H_INCLUDED__
\r
9 #ifdef _IRR_COMPILE_WITH_OGLES1_
\r
11 #if defined(_IRR_COMPILE_WITH_IOS_DEVICE_)
\r
12 #include <OpenGLES/ES1/gl.h>
\r
13 #include <OpenGLES/ES1/glext.h>
\r
14 #elif defined(_IRR_OGLES1_USE_KHRONOS_API_HEADERS_)
\r
15 #include <khronos-api/GLES/gl.h>
\r
16 #include <EGL/eglplatform.h>
\r
17 typedef char GLchar;
\r
18 #else // or only when defined(_IRR_COMPILE_WITH_ANDROID_DEVICE_) ?
\r
19 #include <GLES/gl.h>
\r
20 #include <GLES/glext.h>
\r
21 #include <EGL/eglplatform.h>
\r
25 #define GL_BGRA 0x80E1;
\r
28 // Blending definitions.
\r
30 #if defined(GL_OES_blend_subtract)
\r
31 #define GL_FUNC_ADD GL_FUNC_ADD_OES
\r
33 #define GL_FUNC_ADD 0
\r
38 #ifdef GL_OES_framebuffer_object
\r
39 #define GL_NONE 0 // iOS has missing definition of GL_NONE_OES
\r
40 #define GL_FRAMEBUFFER GL_FRAMEBUFFER_OES
\r
41 #define GL_DEPTH_COMPONENT16 GL_DEPTH_COMPONENT16_OES
\r
42 #define GL_COLOR_ATTACHMENT0 GL_COLOR_ATTACHMENT0_OES
\r
43 #define GL_DEPTH_ATTACHMENT GL_DEPTH_ATTACHMENT_OES
\r
44 #define GL_STENCIL_ATTACHMENT GL_STENCIL_ATTACHMENT_OES
\r
45 #define GL_FRAMEBUFFER_COMPLETE GL_FRAMEBUFFER_COMPLETE_OES
\r
46 #define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER 1
\r
47 #define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER 2
\r
48 #define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES
\r
49 #define GL_FRAMEBUFFER_INCOMPLETE_FORMATS GL_FRAMEBUFFER_INCOMPLETE_FORMATS_OES
\r
50 #define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES
\r
51 #define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES
\r
52 #define GL_FRAMEBUFFER_UNSUPPORTED GL_FRAMEBUFFER_UNSUPPORTED_OES
\r
55 #define GL_FRAMEBUFFER 0
\r
56 #define GL_DEPTH_COMPONENT16 0
\r
57 #define GL_COLOR_ATTACHMENT0 0
\r
58 #define GL_DEPTH_ATTACHMENT 0
\r
59 #define GL_STENCIL_ATTACHMENT 0
\r
60 #define GL_FRAMEBUFFER_COMPLETE 0
\r
61 #define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER 1
\r
62 #define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER 2
\r
63 #define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 3
\r
64 #define GL_FRAMEBUFFER_INCOMPLETE_FORMATS 4
\r
65 #define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS 5
\r
66 #define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 6
\r
67 #define GL_FRAMEBUFFER_UNSUPPORTED 7
\r
70 #define GL_DEPTH_COMPONENT 0x1902
\r
72 // Texture definitions.
\r
74 #ifdef GL_OES_texture_cube_map
\r
75 #define GL_TEXTURE_CUBE_MAP GL_TEXTURE_CUBE_MAP_OES
\r
76 #define GL_TEXTURE_CUBE_MAP_POSITIVE_X GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES
\r
77 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_X GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES
\r
78 #define GL_TEXTURE_CUBE_MAP_POSITIVE_Y GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES
\r
79 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES
\r
80 #define GL_TEXTURE_CUBE_MAP_POSITIVE_Z GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES
\r
81 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES
\r
83 #define GL_TEXTURE_CUBE_MAP 0
\r
84 #define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0
\r
85 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0
\r
86 #define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0
\r
87 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0
\r
88 #define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0
\r
89 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0
\r
92 // to check if this header is in the current compile unit (different GL implementation used different "GLCommon" headers in Irrlicht
\r
93 #define IRR_COMPILE_GLES_COMMON
\r
100 // Forward declarations.
\r
102 class COpenGLCoreFeature;
\r
104 template <class TOpenGLDriver>
\r
105 class COpenGLCoreTexture;
\r
107 template <class TOpenGLDriver, class TOpenGLTexture>
\r
108 class COpenGLCoreRenderTarget;
\r
110 template <class TOpenGLDriver, class TOpenGLTexture>
\r
111 class COpenGLCoreCacheHandler;
\r
113 class COGLES1Driver;
\r
114 typedef COpenGLCoreTexture<COGLES1Driver> COGLES1Texture;
\r
115 typedef COpenGLCoreRenderTarget<COGLES1Driver, COGLES1Texture> COGLES1RenderTarget;
\r
116 typedef COpenGLCoreCacheHandler<COGLES1Driver, COGLES1Texture> COGLES1CacheHandler;
\r