]> git.tdb.fi Git - libs/gl.git/blob - source/arb_shader_objects.cpp
Add support for detecting extensions
[libs/gl.git] / source / arb_shader_objects.cpp
1 #include "extension.h"
2 #include "arb_shader_objects.h"
3
4 namespace Msp {
5 namespace GL {
6
7 PFNGLDELETEOBJECTARBPROC glDeleteObjectARB=0;
8 PFNGLGETHANDLEARBPROC glGetHandleARB=0;
9 PFNGLDETACHOBJECTARBPROC glDetachObjectARB=0;
10 PFNGLCREATESHADEROBJECTARBPROC glCreateShaderObjectARB=0;
11 PFNGLSHADERSOURCEARBPROC glShaderSourceARB=0;
12 PFNGLCOMPILESHADERARBPROC glCompileShaderARB=0;
13 PFNGLCREATEPROGRAMOBJECTARBPROC glCreateProgramObjectARB=0;
14 PFNGLATTACHOBJECTARBPROC glAttachObjectARB=0;
15 PFNGLLINKPROGRAMARBPROC glLinkProgramARB=0;
16 PFNGLUSEPROGRAMOBJECTARBPROC glUseProgramObjectARB=0;
17 PFNGLVALIDATEPROGRAMARBPROC glValidateProgramARB=0;
18 PFNGLUNIFORM1FARBPROC glUniform1fARB=0;
19 PFNGLUNIFORM2FARBPROC glUniform2fARB=0;
20 PFNGLUNIFORM3FARBPROC glUniform3fARB=0;
21 PFNGLUNIFORM4FARBPROC glUniform4fARB=0;
22 PFNGLUNIFORM1IARBPROC glUniform1iARB=0;
23 PFNGLUNIFORM2IARBPROC glUniform2iARB=0;
24 PFNGLUNIFORM3IARBPROC glUniform3iARB=0;
25 PFNGLUNIFORM4IARBPROC glUniform4iARB=0;
26 PFNGLUNIFORM1FVARBPROC glUniform1fvARB=0;
27 PFNGLUNIFORM2FVARBPROC glUniform2fvARB=0;
28 PFNGLUNIFORM3FVARBPROC glUniform3fvARB=0;
29 PFNGLUNIFORM4FVARBPROC glUniform4fvARB=0;
30 PFNGLUNIFORM1IVARBPROC glUniform1ivARB=0;
31 PFNGLUNIFORM2IVARBPROC glUniform2ivARB=0;
32 PFNGLUNIFORM3IVARBPROC glUniform3ivARB=0;
33 PFNGLUNIFORM4IVARBPROC glUniform4ivARB=0;
34 PFNGLUNIFORMMATRIX2FVARBPROC glUniformMatrix2fvARB=0;
35 PFNGLUNIFORMMATRIX3FVARBPROC glUniformMatrix3fvARB=0;
36 PFNGLUNIFORMMATRIX4FVARBPROC glUniformMatrix4fvARB=0;
37 PFNGLGETOBJECTPARAMETERFVARBPROC glGetObjectParameterfvARB=0;
38 PFNGLGETOBJECTPARAMETERIVARBPROC glGetObjectParameterivARB=0;
39 PFNGLGETINFOLOGARBPROC glGetInfoLogARB=0;
40 PFNGLGETATTACHEDOBJECTSARBPROC glGetAttachedObjectsARB=0;
41 PFNGLGETUNIFORMLOCATIONARBPROC glGetUniformLocationARB=0;
42 PFNGLGETACTIVEUNIFORMARBPROC glGetActiveUniformARB=0;
43 PFNGLGETUNIFORMFVARBPROC glGetUniformfvARB=0;
44 PFNGLGETUNIFORMIVARBPROC glGetUniformivARB=0;
45 PFNGLGETSHADERSOURCEARBPROC glGetShaderSourceARB=0;
46
47 void init_arb_shader_objects()
48 {
49         glDeleteObjectARB=reinterpret_cast<PFNGLDELETEOBJECTARBPROC>(get_proc_address("glDeleteObjectARB"));
50         glGetHandleARB=reinterpret_cast<PFNGLGETHANDLEARBPROC>(get_proc_address("glGetHandleARB"));
51         glDetachObjectARB=reinterpret_cast<PFNGLDETACHOBJECTARBPROC>(get_proc_address("glDetachObjectARB"));
52         glCreateShaderObjectARB=reinterpret_cast<PFNGLCREATESHADEROBJECTARBPROC>(get_proc_address("glCreateShaderObjectARB"));
53         glShaderSourceARB=reinterpret_cast<PFNGLSHADERSOURCEARBPROC>(get_proc_address("glShaderSourceARB"));
54         glCompileShaderARB=reinterpret_cast<PFNGLCOMPILESHADERARBPROC>(get_proc_address("glCompileShaderARB"));
55         glCreateProgramObjectARB=reinterpret_cast<PFNGLCREATEPROGRAMOBJECTARBPROC>(get_proc_address("glCreateProgramObjectARB"));
56         glAttachObjectARB=reinterpret_cast<PFNGLATTACHOBJECTARBPROC>(get_proc_address("glAttachObjectARB"));
57         glLinkProgramARB=reinterpret_cast<PFNGLLINKPROGRAMARBPROC>(get_proc_address("glLinkProgramARB"));
58         glUseProgramObjectARB=reinterpret_cast<PFNGLUSEPROGRAMOBJECTARBPROC>(get_proc_address("glUseProgramObjectARB"));
59         glValidateProgramARB=reinterpret_cast<PFNGLVALIDATEPROGRAMARBPROC>(get_proc_address("glValidateProgramARB"));
60         glUniform1fARB=reinterpret_cast<PFNGLUNIFORM1FARBPROC>(get_proc_address("glUniform1fARB"));
61         glUniform2fARB=reinterpret_cast<PFNGLUNIFORM2FARBPROC>(get_proc_address("glUniform2fARB"));
62         glUniform3fARB=reinterpret_cast<PFNGLUNIFORM3FARBPROC>(get_proc_address("glUniform3fARB"));
63         glUniform4fARB=reinterpret_cast<PFNGLUNIFORM4FARBPROC>(get_proc_address("glUniform4fARB"));
64         glUniform1iARB=reinterpret_cast<PFNGLUNIFORM1IARBPROC>(get_proc_address("glUniform1iARB"));
65         glUniform2iARB=reinterpret_cast<PFNGLUNIFORM2IARBPROC>(get_proc_address("glUniform2iARB"));
66         glUniform3iARB=reinterpret_cast<PFNGLUNIFORM3IARBPROC>(get_proc_address("glUniform3iARB"));
67         glUniform4iARB=reinterpret_cast<PFNGLUNIFORM4IARBPROC>(get_proc_address("glUniform4iARB"));
68         glUniform1fvARB=reinterpret_cast<PFNGLUNIFORM1FVARBPROC>(get_proc_address("glUniform1fvARB"));
69         glUniform2fvARB=reinterpret_cast<PFNGLUNIFORM2FVARBPROC>(get_proc_address("glUniform2fvARB"));
70         glUniform3fvARB=reinterpret_cast<PFNGLUNIFORM3FVARBPROC>(get_proc_address("glUniform3fvARB"));
71         glUniform4fvARB=reinterpret_cast<PFNGLUNIFORM4FVARBPROC>(get_proc_address("glUniform4fvARB"));
72         glUniform1ivARB=reinterpret_cast<PFNGLUNIFORM1IVARBPROC>(get_proc_address("glUniform1ivARB"));
73         glUniform2ivARB=reinterpret_cast<PFNGLUNIFORM2IVARBPROC>(get_proc_address("glUniform2ivARB"));
74         glUniform3ivARB=reinterpret_cast<PFNGLUNIFORM3IVARBPROC>(get_proc_address("glUniform3ivARB"));
75         glUniform4ivARB=reinterpret_cast<PFNGLUNIFORM4IVARBPROC>(get_proc_address("glUniform4ivARB"));
76         glUniformMatrix2fvARB=reinterpret_cast<PFNGLUNIFORMMATRIX2FVARBPROC>(get_proc_address("glUniformMatrix2fvARB"));
77         glUniformMatrix3fvARB=reinterpret_cast<PFNGLUNIFORMMATRIX3FVARBPROC>(get_proc_address("glUniformMatrix3fvARB"));
78         glUniformMatrix4fvARB=reinterpret_cast<PFNGLUNIFORMMATRIX4FVARBPROC>(get_proc_address("glUniformMatrix4fvARB"));
79         glGetObjectParameterfvARB=reinterpret_cast<PFNGLGETOBJECTPARAMETERFVARBPROC>(get_proc_address("glGetObjectParameterfvARB"));
80         glGetObjectParameterivARB=reinterpret_cast<PFNGLGETOBJECTPARAMETERIVARBPROC>(get_proc_address("glGetObjectParameterivARB"));
81         glGetInfoLogARB=reinterpret_cast<PFNGLGETINFOLOGARBPROC>(get_proc_address("glGetInfoLogARB"));
82         glGetAttachedObjectsARB=reinterpret_cast<PFNGLGETATTACHEDOBJECTSARBPROC>(get_proc_address("glGetAttachedObjectsARB"));
83         glGetUniformLocationARB=reinterpret_cast<PFNGLGETUNIFORMLOCATIONARBPROC>(get_proc_address("glGetUniformLocationARB"));
84         glGetActiveUniformARB=reinterpret_cast<PFNGLGETACTIVEUNIFORMARBPROC>(get_proc_address("glGetActiveUniformARB"));
85         glGetUniformfvARB=reinterpret_cast<PFNGLGETUNIFORMFVARBPROC>(get_proc_address("glGetUniformfvARB"));
86         glGetUniformivARB=reinterpret_cast<PFNGLGETUNIFORMIVARBPROC>(get_proc_address("glGetUniformivARB"));
87         glGetShaderSourceARB=reinterpret_cast<PFNGLGETSHADERSOURCEARBPROC>(get_proc_address("glGetShaderSourceARB"));
88 }
89
90 } // namespace GL
91 } // namespace Msp