]> git.tdb.fi Git - libs/gl.git/blob - source/arb_shader_objects.cpp
Add a class to negotiate the storage of multiple objects in a buffer
[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