1 
2 //          Copyright 2018 - 2021 Michael D. Parker
3 // Distributed under the Boost Software License, Version 1.0.
4 //    (See accompanying file LICENSE_1_0.txt or copy at
5 //          http://www.boost.org/LICENSE_1_0.txt)
6 
7 module bindbc.opengl.bind.dep.dep13;
8 
9 import bindbc.loader;
10 import bindbc.opengl.context;
11 import bindbc.opengl.bind.types;
12 
13 version(GL_AllowDeprecated) {
14     enum : uint  {
15         GL_CLIENT_ACTIVE_TEXTURE          = 0x84E1,
16         GL_MAX_TEXTURE_UNITS              = 0x84E2,
17         GL_TRANSPOSE_MODELVIEW_MATRIX     = 0x84E3,
18         GL_TRANSPOSE_PROJECTION_MATRIX    = 0x84E4,
19         GL_TRANSPOSE_TEXTURE_MATRIX       = 0x84E5,
20         GL_TRANSPOSE_COLOR_MATRIX         = 0x84E6,
21         GL_MULTISAMPLE_BIT                = 0x20000000,
22         GL_NORMAL_MAP                     = 0x8511,
23         GL_REFLECTION_MAP                 = 0x8512,
24         GL_COMPRESSED_ALPHA               = 0x84E9,
25         GL_COMPRESSED_LUMINANCE           = 0x84EA,
26         GL_COMPRESSED_LUMINANCE_ALPHA     = 0x84EB,
27         GL_COMPRESSED_INTENSITY           = 0x84EC,
28         GL_COMBINE                        = 0x8570,
29         GL_COMBINE_RGB                    = 0x8571,
30         GL_COMBINE_ALPHA                  = 0x8572,
31         GL_SOURCE0_RGB                    = 0x8580,
32         GL_SOURCE1_RGB                    = 0x8581,
33         GL_SOURCE2_RGB                    = 0x8582,
34         GL_SOURCE0_ALPHA                  = 0x8588,
35         GL_SOURCE1_ALPHA                  = 0x8589,
36         GL_SOURCE2_ALPHA                  = 0x858A,
37         GL_OPERAND0_RGB                   = 0x8590,
38         GL_OPERAND1_RGB                   = 0x8591,
39         GL_OPERAND2_RGB                   = 0x8592,
40         GL_OPERAND0_ALPHA                 = 0x8598,
41         GL_OPERAND1_ALPHA                 = 0x8599,
42         GL_OPERAND2_ALPHA                 = 0x859A,
43         GL_RGB_SCALE                      = 0x8573,
44         GL_ADD_SIGNED                     = 0x8574,
45         GL_INTERPOLATE                    = 0x8575,
46         GL_SUBTRACT                       = 0x84E7,
47         GL_CONSTANT                       = 0x8576,
48         GL_PRIMARY_COLOR                  = 0x8577,
49         GL_PREVIOUS                       = 0x8578,
50         GL_DOT3_RGB                       = 0x86AE,
51         GL_DOT3_RGBA                      = 0x86AF,
52     }
53 
54     extern(System) @nogc nothrow {
55         alias pglClientActiveTexture = void function(GLenum);
56         alias pglMultiTexCoord1d = void function(GLenum, GLdouble);
57         alias pglMultiTexCoord1dv = void function(GLenum, const(GLdouble)*);
58         alias pglMultiTexCoord1f = void function(GLenum, GLfloat);
59         alias pglMultiTexCoord1fv = void function(GLenum, const(GLfloat)*);
60         alias pglMultiTexCoord1i = void function(GLenum, GLint);
61         alias pglMultiTexCoord1iv = void function(GLenum, const(GLint)*);
62         alias pglMultiTexCoord1s = void function(GLenum, GLshort);
63         alias pglMultiTexCoord1sv = void function(GLenum, const(GLshort)*);
64         alias pglMultiTexCoord2d = void function(GLenum, GLdouble, GLdouble);
65         alias pglMultiTexCoord2dv = void function(GLenum, const(GLdouble)*);
66         alias pglMultiTexCoord2f = void function(GLenum, GLfloat, GLfloat);
67         alias pglMultiTexCoord2fv = void function(GLenum, const(GLfloat)*);
68         alias pglMultiTexCoord2i = void function(GLenum, GLint, GLint);
69         alias pglMultiTexCoord2iv = void function(GLenum, const(GLint)*);
70         alias pglMultiTexCoord2s = void function(GLenum, GLshort, GLshort);
71         alias pglMultiTexCoord2sv = void function(GLenum, const(GLshort)*);
72         alias pglMultiTexCoord3d = void function(GLenum, GLdouble, GLdouble, GLdouble);
73         alias pglMultiTexCoord3dv = void function(GLenum, const(GLdouble)*);
74         alias pglMultiTexCoord3f = void function(GLenum, GLfloat, GLfloat, GLfloat);
75         alias pglMultiTexCoord3fv = void function(GLenum, const(GLfloat)*);
76         alias pglMultiTexCoord3i = void function(GLenum, GLint, GLint, GLint);
77         alias pglMultiTexCoord3iv = void function(GLenum, const(GLint)*);
78         alias pglMultiTexCoord3s = void function(GLenum, GLshort, GLshort, GLshort);
79         alias pglMultiTexCoord3sv = void function(GLenum, const(GLshort)*);
80         alias pglMultiTexCoord4d = void function(GLenum, GLdouble, GLdouble, GLdouble, GLdouble);
81         alias pglMultiTexCoord4dv = void function(GLenum, const(GLdouble)*);
82         alias pglMultiTexCoord4f = void function(GLenum, GLfloat, GLfloat, GLfloat, GLfloat);
83         alias pglMultiTexCoord4fv = void function(GLenum, const(GLfloat)*);
84         alias pglMultiTexCoord4i = void function(GLenum, GLint, GLint, GLint, GLint);
85         alias pglMultiTexCoord4iv = void function(GLenum, const(GLint)*);
86         alias pglMultiTexCoord4s = void function(GLenum, GLshort, GLshort, GLshort, GLshort);
87         alias pglMultiTexCoord4sv = void function(GLenum, const(GLshort)*);
88         alias pglLoadTransposeMatrixd = void function(GLdouble*);
89         alias pglLoadTransposeMatrixf = void function(const(GLfloat)*);
90         alias pglMultTransposeMatrixd = void function(const(GLdouble)*);
91         alias pglMultTransposeMatrixf = void function(const(GLfloat)*);
92     }
93 
94     __gshared {
95         pglClientActiveTexture glClientActiveTexture;
96         pglMultiTexCoord1d glMultiTexCoord1d;
97         pglMultiTexCoord1dv glMultiTexCoord1dv;
98         pglMultiTexCoord1f glMultiTexCoord1f;
99         pglMultiTexCoord1fv glMultiTexCoord1fv;
100         pglMultiTexCoord1i glMultiTexCoord1i;
101         pglMultiTexCoord1iv glMultiTexCoord1iv;
102         pglMultiTexCoord1s glMultiTexCoord1s;
103         pglMultiTexCoord1sv glMultiTexCoord1sv;
104         pglMultiTexCoord2d glMultiTexCoord2d;
105         pglMultiTexCoord2dv glMultiTexCoord2dv;
106         pglMultiTexCoord2f glMultiTexCoord2f;
107         pglMultiTexCoord2fv glMultiTexCoord2fv;
108         pglMultiTexCoord2i glMultiTexCoord2i;
109         pglMultiTexCoord2iv glMultiTexCoord2iv;
110         pglMultiTexCoord2s glMultiTexCoord2s;
111         pglMultiTexCoord2sv glMultiTexCoord2sv;
112         pglMultiTexCoord3d glMultiTexCoord3d;
113         pglMultiTexCoord3dv glMultiTexCoord3dv;
114         pglMultiTexCoord3f glMultiTexCoord3f;
115         pglMultiTexCoord3fv glMultiTexCoord3fv;
116         pglMultiTexCoord3i glMultiTexCoord3i;
117         pglMultiTexCoord3iv glMultiTexCoord3iv;
118         pglMultiTexCoord3s glMultiTexCoord3s;
119         pglMultiTexCoord3sv glMultiTexCoord3sv;
120         pglMultiTexCoord4d glMultiTexCoord4d;
121         pglMultiTexCoord4dv glMultiTexCoord4dv;
122         pglMultiTexCoord4f glMultiTexCoord4f;
123         pglMultiTexCoord4fv glMultiTexCoord4fv;
124         pglMultiTexCoord4i glMultiTexCoord4i;
125         pglMultiTexCoord4iv glMultiTexCoord4iv;
126         pglMultiTexCoord4s glMultiTexCoord4s;
127         pglMultiTexCoord4sv glMultiTexCoord4sv;
128         pglLoadTransposeMatrixd glLoadTransposeMatrixd;
129         pglLoadTransposeMatrixf glLoadTransposeMatrixf;
130         pglMultTransposeMatrixd glMultTransposeMatrixd;
131         pglMultTransposeMatrixf glMultTransposeMatrixf;
132     }
133 
134     package(bindbc.opengl.bind) @nogc nothrow
135     bool loadDeprecatedGL13(SharedLib lib)
136     {
137         lib.bindGLSymbol(cast(void**)&glClientActiveTexture, "glClientActiveTexture");
138         lib.bindGLSymbol(cast(void**)&glMultiTexCoord1d, "glMultiTexCoord1d");
139         lib.bindGLSymbol(cast(void**)&glMultiTexCoord1dv, "glMultiTexCoord1dv");
140         lib.bindGLSymbol(cast(void**)&glMultiTexCoord1f, "glMultiTexCoord1f");
141         lib.bindGLSymbol(cast(void**)&glMultiTexCoord1fv, "glMultiTexCoord1fv");
142         lib.bindGLSymbol(cast(void**)&glMultiTexCoord1i, "glMultiTexCoord1i");
143         lib.bindGLSymbol(cast(void**)&glMultiTexCoord1iv, "glMultiTexCoord1iv");
144         lib.bindGLSymbol(cast(void**)&glMultiTexCoord1s, "glMultiTexCoord1s");
145         lib.bindGLSymbol(cast(void**)&glMultiTexCoord1sv, "glMultiTexCoord1sv");
146         lib.bindGLSymbol(cast(void**)&glMultiTexCoord2d, "glMultiTexCoord2d");
147         lib.bindGLSymbol(cast(void**)&glMultiTexCoord2dv, "glMultiTexCoord2dv");
148         lib.bindGLSymbol(cast(void**)&glMultiTexCoord2f, "glMultiTexCoord2f");
149         lib.bindGLSymbol(cast(void**)&glMultiTexCoord2fv, "glMultiTexCoord2fv");
150         lib.bindGLSymbol(cast(void**)&glMultiTexCoord2i, "glMultiTexCoord2i");
151         lib.bindGLSymbol(cast(void**)&glMultiTexCoord2iv, "glMultiTexCoord2iv");
152         lib.bindGLSymbol(cast(void**)&glMultiTexCoord2s, "glMultiTexCoord2s");
153         lib.bindGLSymbol(cast(void**)&glMultiTexCoord2sv, "glMultiTexCoord2sv");
154         lib.bindGLSymbol(cast(void**)&glMultiTexCoord3d, "glMultiTexCoord3d");
155         lib.bindGLSymbol(cast(void**)&glMultiTexCoord3dv, "glMultiTexCoord3dv");
156         lib.bindGLSymbol(cast(void**)&glMultiTexCoord3f, "glMultiTexCoord3f");
157         lib.bindGLSymbol(cast(void**)&glMultiTexCoord3fv, "glMultiTexCoord3fv");
158         lib.bindGLSymbol(cast(void**)&glMultiTexCoord3i, "glMultiTexCoord3i");
159         lib.bindGLSymbol(cast(void**)&glMultiTexCoord3iv, "glMultiTexCoord3iv");
160         lib.bindGLSymbol(cast(void**)&glMultiTexCoord3s, "glMultiTexCoord3s");
161         lib.bindGLSymbol(cast(void**)&glMultiTexCoord3sv, "glMultiTexCoord3sv");
162         lib.bindGLSymbol(cast(void**)&glMultiTexCoord4d, "glMultiTexCoord4d");
163         lib.bindGLSymbol(cast(void**)&glMultiTexCoord4dv, "glMultiTexCoord4dv");
164         lib.bindGLSymbol(cast(void**)&glMultiTexCoord4f, "glMultiTexCoord4f");
165         lib.bindGLSymbol(cast(void**)&glMultiTexCoord4fv, "glMultiTexCoord4fv");
166         lib.bindGLSymbol(cast(void**)&glMultiTexCoord4i, "glMultiTexCoord4i");
167         lib.bindGLSymbol(cast(void**)&glMultiTexCoord4iv, "glMultiTexCoord4iv");
168         lib.bindGLSymbol(cast(void**)&glMultiTexCoord4s, "glMultiTexCoord4s");
169         lib.bindGLSymbol(cast(void**)&glMultiTexCoord4sv, "glMultiTexCoord4sv");
170         lib.bindGLSymbol(cast(void**)&glLoadTransposeMatrixd, "glLoadTransposeMatrixd");
171         lib.bindGLSymbol(cast(void**)&glLoadTransposeMatrixf, "glLoadTransposeMatrixf");
172         lib.bindGLSymbol(cast(void**)&glMultTransposeMatrixd, "glMultTransposeMatrixd");
173         lib.bindGLSymbol(cast(void**)&glMultTransposeMatrixf, "glMultTransposeMatrixf");
174 
175         return errorCountGL() == 0;
176     }
177 }