]> git.tdb.fi Git - libs/gl.git/blob - source/arb_vertex_program.cpp
Rewrite VertexFormat to support an arbitary amount of components
[libs/gl.git] / source / arb_vertex_program.cpp
1 #include "extension.h"
2 #include "arb_vertex_program.h"
3
4 namespace Msp {
5 namespace GL {
6
7 PFNGLVERTEXATTRIB1DARBPROC glVertexAttrib1dARB=0;
8 PFNGLVERTEXATTRIB1DVARBPROC glVertexAttrib1dvARB=0;
9 PFNGLVERTEXATTRIB1FARBPROC glVertexAttrib1fARB=0;
10 PFNGLVERTEXATTRIB1FVARBPROC glVertexAttrib1fvARB=0;
11 PFNGLVERTEXATTRIB1SARBPROC glVertexAttrib1sARB=0;
12 PFNGLVERTEXATTRIB1SVARBPROC glVertexAttrib1svARB=0;
13 PFNGLVERTEXATTRIB2DARBPROC glVertexAttrib2dARB=0;
14 PFNGLVERTEXATTRIB2DVARBPROC glVertexAttrib2dvARB=0;
15 PFNGLVERTEXATTRIB2FARBPROC glVertexAttrib2fARB=0;
16 PFNGLVERTEXATTRIB2FVARBPROC glVertexAttrib2fvARB=0;
17 PFNGLVERTEXATTRIB2SARBPROC glVertexAttrib2sARB=0;
18 PFNGLVERTEXATTRIB2SVARBPROC glVertexAttrib2svARB=0;
19 PFNGLVERTEXATTRIB3DARBPROC glVertexAttrib3dARB=0;
20 PFNGLVERTEXATTRIB3DVARBPROC glVertexAttrib3dvARB=0;
21 PFNGLVERTEXATTRIB3FARBPROC glVertexAttrib3fARB=0;
22 PFNGLVERTEXATTRIB3FVARBPROC glVertexAttrib3fvARB=0;
23 PFNGLVERTEXATTRIB3SARBPROC glVertexAttrib3sARB=0;
24 PFNGLVERTEXATTRIB3SVARBPROC glVertexAttrib3svARB=0;
25 PFNGLVERTEXATTRIB4NBVARBPROC glVertexAttrib4NbvARB=0;
26 PFNGLVERTEXATTRIB4NIVARBPROC glVertexAttrib4NivARB=0;
27 PFNGLVERTEXATTRIB4NSVARBPROC glVertexAttrib4NsvARB=0;
28 PFNGLVERTEXATTRIB4NUBARBPROC glVertexAttrib4NubARB=0;
29 PFNGLVERTEXATTRIB4NUBVARBPROC glVertexAttrib4NubvARB=0;
30 PFNGLVERTEXATTRIB4NUIVARBPROC glVertexAttrib4NuivARB=0;
31 PFNGLVERTEXATTRIB4NUSVARBPROC glVertexAttrib4NusvARB=0;
32 PFNGLVERTEXATTRIB4BVARBPROC glVertexAttrib4bvARB=0;
33 PFNGLVERTEXATTRIB4DARBPROC glVertexAttrib4dARB=0;
34 PFNGLVERTEXATTRIB4DVARBPROC glVertexAttrib4dvARB=0;
35 PFNGLVERTEXATTRIB4FARBPROC glVertexAttrib4fARB=0;
36 PFNGLVERTEXATTRIB4FVARBPROC glVertexAttrib4fvARB=0;
37 PFNGLVERTEXATTRIB4IVARBPROC glVertexAttrib4ivARB=0;
38 PFNGLVERTEXATTRIB4SARBPROC glVertexAttrib4sARB=0;
39 PFNGLVERTEXATTRIB4SVARBPROC glVertexAttrib4svARB=0;
40 PFNGLVERTEXATTRIB4UBVARBPROC glVertexAttrib4ubvARB=0;
41 PFNGLVERTEXATTRIB4UIVARBPROC glVertexAttrib4uivARB=0;
42 PFNGLVERTEXATTRIB4USVARBPROC glVertexAttrib4usvARB=0;
43 PFNGLVERTEXATTRIBPOINTERARBPROC glVertexAttribPointerARB=0;
44 PFNGLENABLEVERTEXATTRIBARRAYARBPROC glEnableVertexAttribArrayARB=0;
45 PFNGLDISABLEVERTEXATTRIBARRAYARBPROC glDisableVertexAttribArrayARB=0;
46 PFNGLPROGRAMSTRINGARBPROC glProgramStringARB=0;
47 PFNGLBINDPROGRAMARBPROC glBindProgramARB=0;
48 PFNGLDELETEPROGRAMSARBPROC glDeleteProgramsARB=0;
49 PFNGLGENPROGRAMSARBPROC glGenProgramsARB=0;
50 PFNGLPROGRAMENVPARAMETER4DARBPROC glProgramEnvParameter4dARB=0;
51 PFNGLPROGRAMENVPARAMETER4DVARBPROC glProgramEnvParameter4dvARB=0;
52 PFNGLPROGRAMENVPARAMETER4FARBPROC glProgramEnvParameter4fARB=0;
53 PFNGLPROGRAMENVPARAMETER4FVARBPROC glProgramEnvParameter4fvARB=0;
54 PFNGLPROGRAMLOCALPARAMETER4DARBPROC glProgramLocalParameter4dARB=0;
55 PFNGLPROGRAMLOCALPARAMETER4DVARBPROC glProgramLocalParameter4dvARB=0;
56 PFNGLPROGRAMLOCALPARAMETER4FARBPROC glProgramLocalParameter4fARB=0;
57 PFNGLPROGRAMLOCALPARAMETER4FVARBPROC glProgramLocalParameter4fvARB=0;
58 PFNGLGETPROGRAMENVPARAMETERDVARBPROC glGetProgramEnvParameterdvARB=0;
59 PFNGLGETPROGRAMENVPARAMETERFVARBPROC glGetProgramEnvParameterfvARB=0;
60 PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC glGetProgramLocalParameterdvARB=0;
61 PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC glGetProgramLocalParameterfvARB=0;
62 PFNGLGETPROGRAMIVARBPROC glGetProgramivARB=0;
63 PFNGLGETPROGRAMSTRINGARBPROC glGetProgramStringARB=0;
64 PFNGLGETVERTEXATTRIBDVARBPROC glGetVertexAttribdvARB=0;
65 PFNGLGETVERTEXATTRIBFVARBPROC glGetVertexAttribfvARB=0;
66 PFNGLGETVERTEXATTRIBIVARBPROC glGetVertexAttribivARB=0;
67 PFNGLGETVERTEXATTRIBPOINTERVARBPROC glGetVertexAttribPointervARB=0;
68 PFNGLISPROGRAMARBPROC glIsProgramARB=0;
69
70 void init_arb_vertex_program()
71 {
72         glVertexAttrib1dARB=reinterpret_cast<PFNGLVERTEXATTRIB1DARBPROC>(get_proc_address("glVertexAttrib1dARB"));
73         glVertexAttrib1dvARB=reinterpret_cast<PFNGLVERTEXATTRIB1DVARBPROC>(get_proc_address("glVertexAttrib1dvARB"));
74         glVertexAttrib1fARB=reinterpret_cast<PFNGLVERTEXATTRIB1FARBPROC>(get_proc_address("glVertexAttrib1fARB"));
75         glVertexAttrib1fvARB=reinterpret_cast<PFNGLVERTEXATTRIB1FVARBPROC>(get_proc_address("glVertexAttrib1fvARB"));
76         glVertexAttrib1sARB=reinterpret_cast<PFNGLVERTEXATTRIB1SARBPROC>(get_proc_address("glVertexAttrib1sARB"));
77         glVertexAttrib1svARB=reinterpret_cast<PFNGLVERTEXATTRIB1SVARBPROC>(get_proc_address("glVertexAttrib1svARB"));
78         glVertexAttrib2dARB=reinterpret_cast<PFNGLVERTEXATTRIB2DARBPROC>(get_proc_address("glVertexAttrib2dARB"));
79         glVertexAttrib2dvARB=reinterpret_cast<PFNGLVERTEXATTRIB2DVARBPROC>(get_proc_address("glVertexAttrib2dvARB"));
80         glVertexAttrib2fARB=reinterpret_cast<PFNGLVERTEXATTRIB2FARBPROC>(get_proc_address("glVertexAttrib2fARB"));
81         glVertexAttrib2fvARB=reinterpret_cast<PFNGLVERTEXATTRIB2FVARBPROC>(get_proc_address("glVertexAttrib2fvARB"));
82         glVertexAttrib2sARB=reinterpret_cast<PFNGLVERTEXATTRIB2SARBPROC>(get_proc_address("glVertexAttrib2sARB"));
83         glVertexAttrib2svARB=reinterpret_cast<PFNGLVERTEXATTRIB2SVARBPROC>(get_proc_address("glVertexAttrib2svARB"));
84         glVertexAttrib3dARB=reinterpret_cast<PFNGLVERTEXATTRIB3DARBPROC>(get_proc_address("glVertexAttrib3dARB"));
85         glVertexAttrib3dvARB=reinterpret_cast<PFNGLVERTEXATTRIB3DVARBPROC>(get_proc_address("glVertexAttrib3dvARB"));
86         glVertexAttrib3fARB=reinterpret_cast<PFNGLVERTEXATTRIB3FARBPROC>(get_proc_address("glVertexAttrib3fARB"));
87         glVertexAttrib3fvARB=reinterpret_cast<PFNGLVERTEXATTRIB3FVARBPROC>(get_proc_address("glVertexAttrib3fvARB"));
88         glVertexAttrib3sARB=reinterpret_cast<PFNGLVERTEXATTRIB3SARBPROC>(get_proc_address("glVertexAttrib3sARB"));
89         glVertexAttrib3svARB=reinterpret_cast<PFNGLVERTEXATTRIB3SVARBPROC>(get_proc_address("glVertexAttrib3svARB"));
90         glVertexAttrib4NbvARB=reinterpret_cast<PFNGLVERTEXATTRIB4NBVARBPROC>(get_proc_address("glVertexAttrib4NbvARB"));
91         glVertexAttrib4NivARB=reinterpret_cast<PFNGLVERTEXATTRIB4NIVARBPROC>(get_proc_address("glVertexAttrib4NivARB"));
92         glVertexAttrib4NsvARB=reinterpret_cast<PFNGLVERTEXATTRIB4NSVARBPROC>(get_proc_address("glVertexAttrib4NsvARB"));
93         glVertexAttrib4NubARB=reinterpret_cast<PFNGLVERTEXATTRIB4NUBARBPROC>(get_proc_address("glVertexAttrib4NubARB"));
94         glVertexAttrib4NubvARB=reinterpret_cast<PFNGLVERTEXATTRIB4NUBVARBPROC>(get_proc_address("glVertexAttrib4NubvARB"));
95         glVertexAttrib4NuivARB=reinterpret_cast<PFNGLVERTEXATTRIB4NUIVARBPROC>(get_proc_address("glVertexAttrib4NuivARB"));
96         glVertexAttrib4NusvARB=reinterpret_cast<PFNGLVERTEXATTRIB4NUSVARBPROC>(get_proc_address("glVertexAttrib4NusvARB"));
97         glVertexAttrib4bvARB=reinterpret_cast<PFNGLVERTEXATTRIB4BVARBPROC>(get_proc_address("glVertexAttrib4bvARB"));
98         glVertexAttrib4dARB=reinterpret_cast<PFNGLVERTEXATTRIB4DARBPROC>(get_proc_address("glVertexAttrib4dARB"));
99         glVertexAttrib4dvARB=reinterpret_cast<PFNGLVERTEXATTRIB4DVARBPROC>(get_proc_address("glVertexAttrib4dvARB"));
100         glVertexAttrib4fARB=reinterpret_cast<PFNGLVERTEXATTRIB4FARBPROC>(get_proc_address("glVertexAttrib4fARB"));
101         glVertexAttrib4fvARB=reinterpret_cast<PFNGLVERTEXATTRIB4FVARBPROC>(get_proc_address("glVertexAttrib4fvARB"));
102         glVertexAttrib4ivARB=reinterpret_cast<PFNGLVERTEXATTRIB4IVARBPROC>(get_proc_address("glVertexAttrib4ivARB"));
103         glVertexAttrib4sARB=reinterpret_cast<PFNGLVERTEXATTRIB4SARBPROC>(get_proc_address("glVertexAttrib4sARB"));
104         glVertexAttrib4svARB=reinterpret_cast<PFNGLVERTEXATTRIB4SVARBPROC>(get_proc_address("glVertexAttrib4svARB"));
105         glVertexAttrib4ubvARB=reinterpret_cast<PFNGLVERTEXATTRIB4UBVARBPROC>(get_proc_address("glVertexAttrib4ubvARB"));
106         glVertexAttrib4uivARB=reinterpret_cast<PFNGLVERTEXATTRIB4UIVARBPROC>(get_proc_address("glVertexAttrib4uivARB"));
107         glVertexAttrib4usvARB=reinterpret_cast<PFNGLVERTEXATTRIB4USVARBPROC>(get_proc_address("glVertexAttrib4usvARB"));
108         glVertexAttribPointerARB=reinterpret_cast<PFNGLVERTEXATTRIBPOINTERARBPROC>(get_proc_address("glVertexAttribPointerARB"));
109         glEnableVertexAttribArrayARB=reinterpret_cast<PFNGLENABLEVERTEXATTRIBARRAYARBPROC>(get_proc_address("glEnableVertexAttribArrayARB"));
110         glDisableVertexAttribArrayARB=reinterpret_cast<PFNGLDISABLEVERTEXATTRIBARRAYARBPROC>(get_proc_address("glDisableVertexAttribArrayARB"));
111         glProgramStringARB=reinterpret_cast<PFNGLPROGRAMSTRINGARBPROC>(get_proc_address("glProgramStringARB"));
112         glBindProgramARB=reinterpret_cast<PFNGLBINDPROGRAMARBPROC>(get_proc_address("glBindProgramARB"));
113         glDeleteProgramsARB=reinterpret_cast<PFNGLDELETEPROGRAMSARBPROC>(get_proc_address("glDeleteProgramsARB"));
114         glGenProgramsARB=reinterpret_cast<PFNGLGENPROGRAMSARBPROC>(get_proc_address("glGenProgramsARB"));
115         glProgramEnvParameter4dARB=reinterpret_cast<PFNGLPROGRAMENVPARAMETER4DARBPROC>(get_proc_address("glProgramEnvParameter4dARB"));
116         glProgramEnvParameter4dvARB=reinterpret_cast<PFNGLPROGRAMENVPARAMETER4DVARBPROC>(get_proc_address("glProgramEnvParameter4dvARB"));
117         glProgramEnvParameter4fARB=reinterpret_cast<PFNGLPROGRAMENVPARAMETER4FARBPROC>(get_proc_address("glProgramEnvParameter4fARB"));
118         glProgramEnvParameter4fvARB=reinterpret_cast<PFNGLPROGRAMENVPARAMETER4FVARBPROC>(get_proc_address("glProgramEnvParameter4fvARB"));
119         glProgramLocalParameter4dARB=reinterpret_cast<PFNGLPROGRAMLOCALPARAMETER4DARBPROC>(get_proc_address("glProgramLocalParameter4dARB"));
120         glProgramLocalParameter4dvARB=reinterpret_cast<PFNGLPROGRAMLOCALPARAMETER4DVARBPROC>(get_proc_address("glProgramLocalParameter4dvARB"));
121         glProgramLocalParameter4fARB=reinterpret_cast<PFNGLPROGRAMLOCALPARAMETER4FARBPROC>(get_proc_address("glProgramLocalParameter4fARB"));
122         glProgramLocalParameter4fvARB=reinterpret_cast<PFNGLPROGRAMLOCALPARAMETER4FVARBPROC>(get_proc_address("glProgramLocalParameter4fvARB"));
123         glGetProgramEnvParameterdvARB=reinterpret_cast<PFNGLGETPROGRAMENVPARAMETERDVARBPROC>(get_proc_address("glGetProgramEnvParameterdvARB"));
124         glGetProgramEnvParameterfvARB=reinterpret_cast<PFNGLGETPROGRAMENVPARAMETERFVARBPROC>(get_proc_address("glGetProgramEnvParameterfvARB"));
125         glGetProgramLocalParameterdvARB=reinterpret_cast<PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC>(get_proc_address("glGetProgramLocalParameterdvARB"));
126         glGetProgramLocalParameterfvARB=reinterpret_cast<PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC>(get_proc_address("glGetProgramLocalParameterfvARB"));
127         glGetProgramivARB=reinterpret_cast<PFNGLGETPROGRAMIVARBPROC>(get_proc_address("glGetProgramivARB"));
128         glGetProgramStringARB=reinterpret_cast<PFNGLGETPROGRAMSTRINGARBPROC>(get_proc_address("glGetProgramStringARB"));
129         glGetVertexAttribdvARB=reinterpret_cast<PFNGLGETVERTEXATTRIBDVARBPROC>(get_proc_address("glGetVertexAttribdvARB"));
130         glGetVertexAttribfvARB=reinterpret_cast<PFNGLGETVERTEXATTRIBFVARBPROC>(get_proc_address("glGetVertexAttribfvARB"));
131         glGetVertexAttribivARB=reinterpret_cast<PFNGLGETVERTEXATTRIBIVARBPROC>(get_proc_address("glGetVertexAttribivARB"));
132         glGetVertexAttribPointervARB=reinterpret_cast<PFNGLGETVERTEXATTRIBPOINTERVARBPROC>(get_proc_address("glGetVertexAttribPointervARB"));
133         glIsProgramARB=reinterpret_cast<PFNGLISPROGRAMARBPROC>(get_proc_address("glIsProgramARB"));
134 }
135
136 } // namespace GL
137 } // namespace Msp