]> git.lizzy.rs Git - irrlicht.git/blob - source/Irrlicht/COGLESCommon.h
a7b8eb3e6fa74456e66f05873eddccd55504db0f
[irrlicht.git] / source / Irrlicht / COGLESCommon.h
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
4 \r
5 #ifndef __C_OGLES_COMMON_H_INCLUDED__\r
6 #define __C_OGLES_COMMON_H_INCLUDED__\r
7 \r
8 #include "IrrCompileConfig.h"\r
9 \r
10 #ifdef _IRR_COMPILE_WITH_OGLES1_\r
11 \r
12 #if defined(_IRR_COMPILE_WITH_IOS_DEVICE_)\r
13 #include <OpenGLES/ES1/gl.h>\r
14 #include <OpenGLES/ES1/glext.h>\r
15 #elif defined(_IRR_OGLES1_USE_KHRONOS_API_HEADERS_)\r
16 #include <khronos-api/GLES/gl.h>\r
17 #include <EGL/eglplatform.h>\r
18 typedef char GLchar;\r
19 #else   // or only when defined(_IRR_COMPILE_WITH_ANDROID_DEVICE_) ?\r
20 #include <GLES/gl.h>\r
21 #include <GLES/glext.h>\r
22 #include <EGL/eglplatform.h>\r
23 #endif\r
24 \r
25 #ifndef GL_BGRA\r
26 #define GL_BGRA 0x80E1;\r
27 #endif\r
28 \r
29 // Blending definitions.\r
30 \r
31 #if defined(GL_OES_blend_subtract)\r
32 #define GL_FUNC_ADD GL_FUNC_ADD_OES\r
33 #else\r
34 #define GL_FUNC_ADD 0\r
35 #endif\r
36 \r
37 // FBO definitions.\r
38 \r
39 #ifdef GL_OES_framebuffer_object\r
40 #define GL_NONE 0 // iOS has missing definition of GL_NONE_OES\r
41 #define GL_FRAMEBUFFER GL_FRAMEBUFFER_OES\r
42 #define GL_DEPTH_COMPONENT16 GL_DEPTH_COMPONENT16_OES\r
43 #define GL_COLOR_ATTACHMENT0 GL_COLOR_ATTACHMENT0_OES\r
44 #define GL_DEPTH_ATTACHMENT GL_DEPTH_ATTACHMENT_OES\r
45 #define GL_STENCIL_ATTACHMENT GL_STENCIL_ATTACHMENT_OES\r
46 #define GL_FRAMEBUFFER_COMPLETE GL_FRAMEBUFFER_COMPLETE_OES\r
47 #define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER 1\r
48 #define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER 2\r
49 #define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES\r
50 #define GL_FRAMEBUFFER_INCOMPLETE_FORMATS GL_FRAMEBUFFER_INCOMPLETE_FORMATS_OES\r
51 #define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES\r
52 #define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES\r
53 #define GL_FRAMEBUFFER_UNSUPPORTED GL_FRAMEBUFFER_UNSUPPORTED_OES\r
54 #else\r
55 #define GL_NONE 0\r
56 #define GL_FRAMEBUFFER 0\r
57 #define GL_DEPTH_COMPONENT16 0\r
58 #define GL_COLOR_ATTACHMENT0 0\r
59 #define GL_DEPTH_ATTACHMENT 0\r
60 #define GL_STENCIL_ATTACHMENT 0\r
61 #define GL_FRAMEBUFFER_COMPLETE 0\r
62 #define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER 1\r
63 #define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER 2\r
64 #define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 3\r
65 #define GL_FRAMEBUFFER_INCOMPLETE_FORMATS 4\r
66 #define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS 5\r
67 #define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 6\r
68 #define GL_FRAMEBUFFER_UNSUPPORTED 7\r
69 #endif\r
70 \r
71 #define GL_DEPTH_COMPONENT 0x1902\r
72 \r
73 // Texture definitions.\r
74 \r
75 #ifdef GL_OES_texture_cube_map\r
76 #define GL_TEXTURE_CUBE_MAP GL_TEXTURE_CUBE_MAP_OES\r
77 #define GL_TEXTURE_CUBE_MAP_POSITIVE_X GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES\r
78 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_X GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES\r
79 #define GL_TEXTURE_CUBE_MAP_POSITIVE_Y GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES\r
80 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES\r
81 #define GL_TEXTURE_CUBE_MAP_POSITIVE_Z GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES\r
82 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES\r
83 #else\r
84 #define GL_TEXTURE_CUBE_MAP 0\r
85 #define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0\r
86 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0\r
87 #define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0\r
88 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0\r
89 #define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0\r
90 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0\r
91 #endif\r
92 \r
93 // to check if this header is in the current compile unit (different GL implementation used different "GLCommon" headers in Irrlicht\r
94 #define IRR_COMPILE_GLES_COMMON\r
95 \r
96 namespace irr\r
97 {\r
98 namespace video\r
99 {\r
100 \r
101         // Forward declarations.\r
102 \r
103         class COpenGLCoreFeature;\r
104 \r
105         template <class TOpenGLDriver>\r
106         class COpenGLCoreTexture;\r
107 \r
108         template <class TOpenGLDriver, class TOpenGLTexture>\r
109         class COpenGLCoreRenderTarget;\r
110 \r
111         template <class TOpenGLDriver, class TOpenGLTexture>\r
112         class COpenGLCoreCacheHandler;\r
113 \r
114         class COGLES1Driver;\r
115         typedef COpenGLCoreTexture<COGLES1Driver> COGLES1Texture;\r
116         typedef COpenGLCoreRenderTarget<COGLES1Driver, COGLES1Texture> COGLES1RenderTarget;\r
117         typedef COpenGLCoreCacheHandler<COGLES1Driver, COGLES1Texture> COGLES1CacheHandler;\r
118 \r
119 }\r
120 }\r
121 \r
122 #endif\r
123 #endif\r