11 #ifndef CAFU_OPENGL_EX_HPP_INCLUDED
12 #define CAFU_OPENGL_EX_HPP_INCLUDED
16 #define WIN32_LEAN_AND_MEAN
20 #define GL_GLEXT_LEGACY
36 extern bool GL_ARB_multitexture_AVAIL;
37 extern bool GL_ARB_texture_cube_map_AVAIL;
38 extern bool GL_ARB_texture_compression_AVAIL;
39 extern bool GL_ATI_Radeon8500Shaders_AVAIL;
40 extern bool GL_EXT_stencil_wrap_AVAIL;
41 extern bool GL_EXT_stencil_two_side_AVAIL;
42 extern bool GL_ARB_vertex_and_fragment_program_AVAIL;
45 void Init_GL_ARB_multitexture();
46 void Init_GL_ARB_texture_cube_map();
47 void Init_GL_ARB_texture_compression();
48 void Init_ATI_Radeon8500Shaders();
49 void Init_GL_EXT_stencil_wrap();
50 void Init_GL_EXT_stencil_two_side();
51 void Init_GL_ARB_vertex_and_fragment_program();
55 extern PFNGLMULTITEXCOORD2DARBPROC glMultiTexCoord2dARB;
56 extern PFNGLMULTITEXCOORD2FARBPROC glMultiTexCoord2fARB;
57 extern PFNGLMULTITEXCOORD2FVARBPROC glMultiTexCoord2fvARB;
58 extern PFNGLMULTITEXCOORD3FARBPROC glMultiTexCoord3fARB;
59 extern PFNGLMULTITEXCOORD3FVARBPROC glMultiTexCoord3fvARB;
60 extern PFNGLMULTITEXCOORD4FARBPROC glMultiTexCoord4fARB;
61 extern PFNGLMULTITEXCOORD4FVARBPROC glMultiTexCoord4fvARB;
62 extern PFNGLACTIVETEXTUREARBPROC glActiveTextureARB;
63 extern PFNGLCLIENTACTIVETEXTUREARBPROC glClientActiveTextureARB;
65 extern PFNGLCOMPRESSEDTEXIMAGE3DARBPROC glCompressedTexImage3DARB;
66 extern PFNGLCOMPRESSEDTEXIMAGE2DARBPROC glCompressedTexImage2DARB;
67 extern PFNGLCOMPRESSEDTEXIMAGE1DARBPROC glCompressedTexImage1DARB;
68 extern PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC glCompressedTexSubImage3DARB;
69 extern PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC glCompressedTexSubImage2DARB;
70 extern PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC glCompressedTexSubImage1DARB;
71 extern PFNGLGETCOMPRESSEDTEXIMAGEARBPROC glGetCompressedTexImageARB;
73 extern PFNGLGENFRAGMENTSHADERSATIPROC glGenFragmentShadersATI;
74 extern PFNGLBINDFRAGMENTSHADERATIPROC glBindFragmentShaderATI;
75 extern PFNGLDELETEFRAGMENTSHADERATIPROC glDeleteFragmentShaderATI;
76 extern PFNGLBEGINFRAGMENTSHADERATIPROC glBeginFragmentShaderATI;
77 extern PFNGLENDFRAGMENTSHADERATIPROC glEndFragmentShaderATI;
78 extern PFNGLPASSTEXCOORDATIPROC glPassTexCoordATI;
79 extern PFNGLSAMPLEMAPATIPROC glSampleMapATI;
80 extern PFNGLCOLORFRAGMENTOP1ATIPROC glColorFragmentOp1ATI;
81 extern PFNGLCOLORFRAGMENTOP2ATIPROC glColorFragmentOp2ATI;
82 extern PFNGLCOLORFRAGMENTOP3ATIPROC glColorFragmentOp3ATI;
83 extern PFNGLALPHAFRAGMENTOP1ATIPROC glAlphaFragmentOp1ATI;
84 extern PFNGLALPHAFRAGMENTOP2ATIPROC glAlphaFragmentOp2ATI;
85 extern PFNGLALPHAFRAGMENTOP3ATIPROC glAlphaFragmentOp3ATI;
86 extern PFNGLSETFRAGMENTSHADERCONSTANTATIPROC glSetFragmentShaderConstantATI;
88 extern PFNGLBEGINVERTEXSHADEREXTPROC glBeginVertexShaderEXT;
89 extern PFNGLENDVERTEXSHADEREXTPROC glEndVertexShaderEXT;
90 extern PFNGLBINDVERTEXSHADEREXTPROC glBindVertexShaderEXT;
91 extern PFNGLGENVERTEXSHADERSEXTPROC glGenVertexShadersEXT;
92 extern PFNGLDELETEVERTEXSHADEREXTPROC glDeleteVertexShaderEXT;
93 extern PFNGLSHADEROP1EXTPROC glShaderOp1EXT;
94 extern PFNGLSHADEROP2EXTPROC glShaderOp2EXT;
95 extern PFNGLSHADEROP3EXTPROC glShaderOp3EXT;
96 extern PFNGLSWIZZLEEXTPROC glSwizzleEXT;
97 extern PFNGLWRITEMASKEXTPROC glWriteMaskEXT;
98 extern PFNGLINSERTCOMPONENTEXTPROC glInsertComponentEXT;
99 extern PFNGLEXTRACTCOMPONENTEXTPROC glExtractComponentEXT;
100 extern PFNGLGENSYMBOLSEXTPROC glGenSymbolsEXT;
101 extern PFNGLSETINVARIANTEXTPROC glSetInvariantEXT;
102 extern PFNGLSETLOCALCONSTANTEXTPROC glSetLocalConstantEXT;
103 extern PFNGLVARIANTBVEXTPROC glVariantbvEXT;
104 extern PFNGLVARIANTSVEXTPROC glVariantsvEXT;
105 extern PFNGLVARIANTIVEXTPROC glVariantivEXT;
106 extern PFNGLVARIANTFVEXTPROC glVariantfvEXT;
107 extern PFNGLVARIANTDVEXTPROC glVariantdvEXT;
108 extern PFNGLVARIANTUBVEXTPROC glVariantubvEXT;
109 extern PFNGLVARIANTUSVEXTPROC glVariantusvEXT;
110 extern PFNGLVARIANTUIVEXTPROC glVariantuivEXT;
111 extern PFNGLVARIANTPOINTEREXTPROC glVariantPointerEXT;
112 extern PFNGLENABLEVARIANTCLIENTSTATEEXTPROC glEnableVariantClientStateEXT;
113 extern PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC glDisableVariantClientStateEXT;
114 extern PFNGLBINDLIGHTPARAMETEREXTPROC glBindLightParameterEXT;
115 extern PFNGLBINDMATERIALPARAMETEREXTPROC glBindMaterialParameterEXT;
116 extern PFNGLBINDTEXGENPARAMETEREXTPROC glBindTexGenParameterEXT;
117 extern PFNGLBINDTEXTUREUNITPARAMETEREXTPROC glBindTextureUnitParameterEXT;
118 extern PFNGLBINDPARAMETEREXTPROC glBindParameterEXT;
119 extern PFNGLISVARIANTENABLEDEXTPROC glIsVariantEnabledEXT;
120 extern PFNGLGETVARIANTBOOLEANVEXTPROC glGetVariantBooleanvEXT;
121 extern PFNGLGETVARIANTINTEGERVEXTPROC glGetVariantIntegervEXT;
122 extern PFNGLGETVARIANTFLOATVEXTPROC glGetVariantFloatvEXT;
123 extern PFNGLGETVARIANTPOINTERVEXTPROC glGetVariantPointervEXT;
124 extern PFNGLGETINVARIANTBOOLEANVEXTPROC glGetInvariantBooleanvEXT;
125 extern PFNGLGETINVARIANTINTEGERVEXTPROC glGetInvariantIntegervEXT;
126 extern PFNGLGETINVARIANTFLOATVEXTPROC glGetInvariantFloatvEXT;
127 extern PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC glGetLocalConstantBooleanvEXT;
128 extern PFNGLGETLOCALCONSTANTINTEGERVEXTPROC glGetLocalConstantIntegervEXT;
129 extern PFNGLGETLOCALCONSTANTFLOATVEXTPROC glGetLocalConstantFloatvEXT;
131 extern PFNGLACTIVESTENCILFACEEXTPROC glActiveStencilFaceEXT;
133 extern PFNGLVERTEXATTRIB1DARBPROC glVertexAttrib1dARB;
134 extern PFNGLVERTEXATTRIB1DVARBPROC glVertexAttrib1dvARB;
135 extern PFNGLVERTEXATTRIB1FARBPROC glVertexAttrib1fARB;
136 extern PFNGLVERTEXATTRIB1FVARBPROC glVertexAttrib1fvARB;
137 extern PFNGLVERTEXATTRIB1SARBPROC glVertexAttrib1sARB;
138 extern PFNGLVERTEXATTRIB1SVARBPROC glVertexAttrib1svARB;
139 extern PFNGLVERTEXATTRIB2DARBPROC glVertexAttrib2dARB;
140 extern PFNGLVERTEXATTRIB2DVARBPROC glVertexAttrib2dvARB;
141 extern PFNGLVERTEXATTRIB2FARBPROC glVertexAttrib2fARB;
142 extern PFNGLVERTEXATTRIB2FVARBPROC glVertexAttrib2fvARB;
143 extern PFNGLVERTEXATTRIB2SARBPROC glVertexAttrib2sARB;
144 extern PFNGLVERTEXATTRIB2SVARBPROC glVertexAttrib2svARB;
145 extern PFNGLVERTEXATTRIB3DARBPROC glVertexAttrib3dARB;
146 extern PFNGLVERTEXATTRIB3DVARBPROC glVertexAttrib3dvARB;
147 extern PFNGLVERTEXATTRIB3FARBPROC glVertexAttrib3fARB;
148 extern PFNGLVERTEXATTRIB3FVARBPROC glVertexAttrib3fvARB;
149 extern PFNGLVERTEXATTRIB3SARBPROC glVertexAttrib3sARB;
150 extern PFNGLVERTEXATTRIB3SVARBPROC glVertexAttrib3svARB;
151 extern PFNGLVERTEXATTRIB4NBVARBPROC glVertexAttrib4NbvARB;
152 extern PFNGLVERTEXATTRIB4NIVARBPROC glVertexAttrib4NivARB;
153 extern PFNGLVERTEXATTRIB4NSVARBPROC glVertexAttrib4NsvARB;
154 extern PFNGLVERTEXATTRIB4NUBARBPROC glVertexAttrib4NubARB;
155 extern PFNGLVERTEXATTRIB4NUBVARBPROC glVertexAttrib4NubvARB;
156 extern PFNGLVERTEXATTRIB4NUIVARBPROC glVertexAttrib4NuivARB;
157 extern PFNGLVERTEXATTRIB4NUSVARBPROC glVertexAttrib4NusvARB;
158 extern PFNGLVERTEXATTRIB4BVARBPROC glVertexAttrib4bvARB;
159 extern PFNGLVERTEXATTRIB4DARBPROC glVertexAttrib4dARB;
160 extern PFNGLVERTEXATTRIB4DVARBPROC glVertexAttrib4dvARB;
161 extern PFNGLVERTEXATTRIB4FARBPROC glVertexAttrib4fARB;
162 extern PFNGLVERTEXATTRIB4FVARBPROC glVertexAttrib4fvARB;
163 extern PFNGLVERTEXATTRIB4IVARBPROC glVertexAttrib4ivARB;
164 extern PFNGLVERTEXATTRIB4SARBPROC glVertexAttrib4sARB;
165 extern PFNGLVERTEXATTRIB4SVARBPROC glVertexAttrib4svARB;
166 extern PFNGLVERTEXATTRIB4UBVARBPROC glVertexAttrib4ubvARB;
167 extern PFNGLVERTEXATTRIB4UIVARBPROC glVertexAttrib4uivARB;
168 extern PFNGLVERTEXATTRIB4USVARBPROC glVertexAttrib4usvARB;
169 extern PFNGLVERTEXATTRIBPOINTERARBPROC glVertexAttribPointerARB;
170 extern PFNGLENABLEVERTEXATTRIBARRAYARBPROC glEnableVertexAttribArrayARB;
171 extern PFNGLDISABLEVERTEXATTRIBARRAYARBPROC glDisableVertexAttribArrayARB;
172 extern PFNGLPROGRAMSTRINGARBPROC glProgramStringARB;
173 extern PFNGLBINDPROGRAMARBPROC glBindProgramARB;
174 extern PFNGLDELETEPROGRAMSARBPROC glDeleteProgramsARB;
175 extern PFNGLGENPROGRAMSARBPROC glGenProgramsARB;
176 extern PFNGLPROGRAMENVPARAMETER4DARBPROC glProgramEnvParameter4dARB;
177 extern PFNGLPROGRAMENVPARAMETER4DVARBPROC glProgramEnvParameter4dvARB;
178 extern PFNGLPROGRAMENVPARAMETER4FARBPROC glProgramEnvParameter4fARB;
179 extern PFNGLPROGRAMENVPARAMETER4FVARBPROC glProgramEnvParameter4fvARB;
180 extern PFNGLPROGRAMLOCALPARAMETER4DARBPROC glProgramLocalParameter4dARB;
181 extern PFNGLPROGRAMLOCALPARAMETER4DVARBPROC glProgramLocalParameter4dvARB;
182 extern PFNGLPROGRAMLOCALPARAMETER4FARBPROC glProgramLocalParameter4fARB;
183 extern PFNGLPROGRAMLOCALPARAMETER4FVARBPROC glProgramLocalParameter4fvARB;
184 extern PFNGLGETPROGRAMENVPARAMETERDVARBPROC glGetProgramEnvParameterdvARB;
185 extern PFNGLGETPROGRAMENVPARAMETERFVARBPROC glGetProgramEnvParameterfvARB;
186 extern PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC glGetProgramLocalParameterdvARB;
187 extern PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC glGetProgramLocalParameterfvARB;
188 extern PFNGLGETPROGRAMIVARBPROC glGetProgramivARB;
189 extern PFNGLGETPROGRAMSTRINGARBPROC glGetProgramStringARB;
190 extern PFNGLGETVERTEXATTRIBDVARBPROC glGetVertexAttribdvARB;
191 extern PFNGLGETVERTEXATTRIBFVARBPROC glGetVertexAttribfvARB;
192 extern PFNGLGETVERTEXATTRIBIVARBPROC glGetVertexAttribivARB;
193 extern PFNGLGETVERTEXATTRIBPOINTERVARBPROC glGetVertexAttribPointervARB;
194 extern PFNGLISPROGRAMARBPROC glIsProgramARB;