]> git.lizzy.rs Git - irrlicht.git/blob - source/Irrlicht/COGLESCommon.h
Reduce IrrCompileConfig usage to files that actually need it
[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 \r
9 #ifdef _IRR_COMPILE_WITH_OGLES1_\r
10 \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
22 #endif\r
23 \r
24 #ifndef GL_BGRA\r
25 #define GL_BGRA 0x80E1;\r
26 #endif\r
27 \r
28 // Blending definitions.\r
29 \r
30 #if defined(GL_OES_blend_subtract)\r
31 #define GL_FUNC_ADD GL_FUNC_ADD_OES\r
32 #else\r
33 #define GL_FUNC_ADD 0\r
34 #endif\r
35 \r
36 // FBO definitions.\r
37 \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
53 #else\r
54 #define GL_NONE 0\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
68 #endif\r
69 \r
70 #define GL_DEPTH_COMPONENT 0x1902\r
71 \r
72 // Texture definitions.\r
73 \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
82 #else\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
90 #endif\r
91 \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
94 \r
95 namespace irr\r
96 {\r
97 namespace video\r
98 {\r
99 \r
100         // Forward declarations.\r
101 \r
102         class COpenGLCoreFeature;\r
103 \r
104         template <class TOpenGLDriver>\r
105         class COpenGLCoreTexture;\r
106 \r
107         template <class TOpenGLDriver, class TOpenGLTexture>\r
108         class COpenGLCoreRenderTarget;\r
109 \r
110         template <class TOpenGLDriver, class TOpenGLTexture>\r
111         class COpenGLCoreCacheHandler;\r
112 \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
117 \r
118 }\r
119 }\r
120 \r
121 #endif\r
122 #endif\r