diff options
author | Jacek Antonelli | 2008-09-06 18:24:57 -0500 |
---|---|---|
committer | Jacek Antonelli | 2008-09-06 18:25:07 -0500 |
commit | 798d367d54a6c6379ad355bd8345fa40e31e7fe9 (patch) | |
tree | 1921f1708cd0240648c97bc02df2c2ab5f2fc41e /linden/libraries/include | |
parent | Second Life viewer sources 1.20.15 (diff) | |
download | meta-impy-798d367d54a6c6379ad355bd8345fa40e31e7fe9.zip meta-impy-798d367d54a6c6379ad355bd8345fa40e31e7fe9.tar.gz meta-impy-798d367d54a6c6379ad355bd8345fa40e31e7fe9.tar.bz2 meta-impy-798d367d54a6c6379ad355bd8345fa40e31e7fe9.tar.xz |
Second Life viewer sources 1.21.0-RC
Diffstat (limited to 'linden/libraries/include')
-rw-r--r-- | linden/libraries/include/GL/glh_extensions.h | 207 | ||||
-rw-r--r-- | linden/libraries/include/GL/glh_genext.h | 1671 | ||||
-rwxr-xr-x | linden/libraries/include/glh/glh_linear.h | 1621 | ||||
-rw-r--r-- | linden/libraries/include/llmozlib2.h | 383 |
4 files changed, 0 insertions, 3882 deletions
diff --git a/linden/libraries/include/GL/glh_extensions.h b/linden/libraries/include/GL/glh_extensions.h deleted file mode 100644 index b936b5d..0000000 --- a/linden/libraries/include/GL/glh_extensions.h +++ /dev/null | |||
@@ -1,207 +0,0 @@ | |||
1 | /* | ||
2 | * glh_extensions.h | ||
3 | * From nVidia Corporation, downloaded 2006-12-18 from: | ||
4 | * http://developer.nvidia.com/attach/8196 | ||
5 | * ("NVParse Library with Source (.zip) (2390 KB)") | ||
6 | * | ||
7 | * License (quoted from license_info.txt in aforementioned file): | ||
8 | * "The files bison.exe, bison.simple, and flex.exe are covered by | ||
9 | * the GPL. All other files in this distribution can be used however | ||
10 | * you want." | ||
11 | */ | ||
12 | |||
13 | #ifndef GLH_EXTENSIONS | ||
14 | #define GLH_EXTENSIONS | ||
15 | |||
16 | #include <string.h> | ||
17 | #include <stdio.h> | ||
18 | |||
19 | #ifdef _WIN32 | ||
20 | # include <windows.h> | ||
21 | #endif | ||
22 | |||
23 | #ifndef __APPLE__ | ||
24 | #include <GL/gl.h> | ||
25 | #endif | ||
26 | |||
27 | #ifdef _WIN32 | ||
28 | # include "GL/wglext.h" | ||
29 | #endif | ||
30 | |||
31 | #define CHECK_MEMORY(ptr) \ | ||
32 | if (NULL == ptr) { \ | ||
33 | printf("Error allocating memory in file %s, line %d\n", __FILE__, __LINE__); \ | ||
34 | exit(-1); \ | ||
35 | } | ||
36 | |||
37 | #ifdef GLH_EXT_SINGLE_FILE | ||
38 | # define GLH_EXTENSIONS_SINGLE_FILE // have to do this because glh_genext.h unsets GLH_EXT_SINGLE_FILE | ||
39 | #endif | ||
40 | |||
41 | #include "glh_genext.h" | ||
42 | |||
43 | #ifdef __cplusplus | ||
44 | extern "C" { | ||
45 | #endif | ||
46 | |||
47 | #ifdef GLH_EXTENSIONS_SINGLE_FILE | ||
48 | |||
49 | class GLHExts | ||
50 | { | ||
51 | public: | ||
52 | GLHExts() | ||
53 | { | ||
54 | mSysExts = NULL; | ||
55 | // mUnsupportedExts = NULL; | ||
56 | } | ||
57 | ~GLHExts() | ||
58 | { | ||
59 | if (mSysExts) | ||
60 | { | ||
61 | free(mSysExts); | ||
62 | } | ||
63 | // if (mUnsupportedExts) | ||
64 | // { | ||
65 | // free(mUnsupportedExts); | ||
66 | // } | ||
67 | } | ||
68 | char *mSysExts; | ||
69 | // char *mUnsupportedExts; | ||
70 | }; | ||
71 | |||
72 | GLHExts gGLHExts; | ||
73 | |||
74 | static int ExtensionExists(const char* extName, const char* sysExts) | ||
75 | { | ||
76 | char *padExtName = (char*)malloc(strlen(extName) + 2); | ||
77 | strcat(strcpy(padExtName, extName), " "); | ||
78 | |||
79 | if (0 == strcmp(extName, "GL_VERSION_1_2")) { | ||
80 | const char *version = (const char*)glGetString(GL_VERSION); | ||
81 | if (strstr(version, "1.0") == version || strstr(version, "1.1") == version) { | ||
82 | return FALSE; | ||
83 | } else { | ||
84 | return TRUE; | ||
85 | } | ||
86 | } | ||
87 | if (strstr(sysExts, padExtName)) { | ||
88 | free(padExtName); | ||
89 | return TRUE; | ||
90 | } else { | ||
91 | free(padExtName); | ||
92 | return FALSE; | ||
93 | } | ||
94 | } | ||
95 | |||
96 | static const char* EatWhiteSpace(const char *str) | ||
97 | { | ||
98 | for (; *str && (' ' == *str || '\t' == *str || '\n' == *str); str++); | ||
99 | return str; | ||
100 | } | ||
101 | |||
102 | static const char* EatNonWhiteSpace(const char *str) | ||
103 | { | ||
104 | for (; *str && (' ' != *str && '\t' != *str && '\n' != *str); str++); | ||
105 | return str; | ||
106 | } | ||
107 | |||
108 | |||
109 | int glh_init_extensions(const char *origReqExts) | ||
110 | { | ||
111 | // Length of requested extensions string | ||
112 | unsigned reqExtsLen; | ||
113 | char *reqExts; | ||
114 | // Ptr for individual extensions within reqExts | ||
115 | char *reqExt; | ||
116 | int success = TRUE; | ||
117 | |||
118 | // build space-padded extension string | ||
119 | if (NULL == gGLHExts.mSysExts) { | ||
120 | const char *extensions = (const char*)glGetString(GL_EXTENSIONS); | ||
121 | int sysExtsLen = (int)strlen(extensions); | ||
122 | const char *winsys_extensions = 0; | ||
123 | int winsysExtsLen = 0; | ||
124 | #ifdef _WIN32 | ||
125 | { | ||
126 | PFNWGLGETEXTENSIONSSTRINGARBPROC wglGetExtensionsStringARB = 0; | ||
127 | wglGetExtensionsStringARB = (PFNWGLGETEXTENSIONSSTRINGARBPROC)wglGetProcAddress("wglGetExtensionsStringARB"); | ||
128 | if(wglGetExtensionsStringARB) | ||
129 | { | ||
130 | winsys_extensions = wglGetExtensionsStringARB(wglGetCurrentDC()); | ||
131 | winsysExtsLen = (S32)strlen(winsys_extensions); | ||
132 | } | ||
133 | } | ||
134 | #endif | ||
135 | // Add 2 bytes, one for padding space, one for terminating NULL | ||
136 | gGLHExts.mSysExts = (char*)malloc(sysExtsLen + winsysExtsLen + 3); | ||
137 | CHECK_MEMORY(gGLHExts.mSysExts); | ||
138 | strcpy(gGLHExts.mSysExts, extensions); | ||
139 | gGLHExts.mSysExts[sysExtsLen] = ' '; | ||
140 | gGLHExts.mSysExts[sysExtsLen + 1] = 0; | ||
141 | if (winsysExtsLen) | ||
142 | { | ||
143 | strcat(gGLHExts.mSysExts, winsys_extensions); | ||
144 | } | ||
145 | gGLHExts.mSysExts[sysExtsLen + 1 + winsysExtsLen] = ' '; | ||
146 | gGLHExts.mSysExts[sysExtsLen + 1 + winsysExtsLen + 1] = 0; | ||
147 | } | ||
148 | |||
149 | if (NULL == origReqExts) | ||
150 | { | ||
151 | return TRUE; | ||
152 | } | ||
153 | reqExts = strdup(origReqExts); | ||
154 | reqExtsLen = (S32)strlen(reqExts); | ||
155 | /* | ||
156 | if (NULL == gGLHExts.mUnsupportedExts) | ||
157 | { | ||
158 | gGLHExts.mUnsupportedExts = (char*)malloc(reqExtsLen + 1); | ||
159 | } | ||
160 | else if (reqExtsLen > strlen(gGLHExts.mUnsupportedExts)) | ||
161 | { | ||
162 | gGLHExts.mUnsupportedExts = (char*)realloc(gGLHExts.mUnsupportedExts, reqExtsLen + 1); | ||
163 | } | ||
164 | CHECK_MEMORY(gGLHExts.mUnsupportedExts); | ||
165 | *gGLHExts.mUnsupportedExts = 0; | ||
166 | */ | ||
167 | |||
168 | // Parse requested extension list | ||
169 | for (reqExt = reqExts; | ||
170 | (reqExt = (char*)EatWhiteSpace(reqExt)) && *reqExt; | ||
171 | reqExt = (char*)EatNonWhiteSpace(reqExt)) | ||
172 | { | ||
173 | char *extEnd = (char*)EatNonWhiteSpace(reqExt); | ||
174 | char saveChar = *extEnd; | ||
175 | *extEnd = (char)0; | ||
176 | |||
177 | if (!ExtensionExists(reqExt, gGLHExts.mSysExts) || | ||
178 | !glh_init_extension(reqExt)) { | ||
179 | /* | ||
180 | // add reqExt to end of unsupportedExts | ||
181 | strcat(gGLHExts.mUnsupportedExts, reqExt); | ||
182 | strcat(gGLHExts.mUnsupportedExts, " "); | ||
183 | */ | ||
184 | success = FALSE; | ||
185 | } | ||
186 | *extEnd = saveChar; | ||
187 | } | ||
188 | free(reqExts); | ||
189 | return success; | ||
190 | } | ||
191 | |||
192 | const char* glh_get_unsupported_extensions() | ||
193 | { | ||
194 | return ""; | ||
195 | // return (const char*)gGLHExts.mUnsupportedExts; | ||
196 | } | ||
197 | |||
198 | #else | ||
199 | int glh_init_extensions(const char *origReqExts); | ||
200 | const char* glh_get_unsupported_extensions(); | ||
201 | #endif /* GLH_EXT_SINGLE_FILE */ | ||
202 | |||
203 | #ifdef __cplusplus | ||
204 | } | ||
205 | #endif | ||
206 | |||
207 | #endif /* GLH_EXTENSIONS */ | ||
diff --git a/linden/libraries/include/GL/glh_genext.h b/linden/libraries/include/GL/glh_genext.h deleted file mode 100644 index 8d42025..0000000 --- a/linden/libraries/include/GL/glh_genext.h +++ /dev/null | |||
@@ -1,1671 +0,0 @@ | |||
1 | /* | ||
2 | * glh_genext.h | ||
3 | * From nVidia Corporation, downloaded 2006-12-18 from: | ||
4 | * http://developer.nvidia.com/attach/8196 | ||
5 | * ("NVParse Library with Source (.zip) (2390 KB)") | ||
6 | * | ||
7 | * License (quoted from license_info.txt in aforementioned file): | ||
8 | * "The files bison.exe, bison.simple, and flex.exe are covered by | ||
9 | * the GPL. All other files in this distribution can be used however | ||
10 | * you want." | ||
11 | */ | ||
12 | |||
13 | /* File generated by extgen.cpp -- do not modify */ | ||
14 | #ifndef GLH_GENEXT_H | ||
15 | #define GLH_GENEXT_H | ||
16 | |||
17 | // MBW -- None of this is necessary on Mac OS. | ||
18 | #ifndef __APPLE__ | ||
19 | |||
20 | #include <GL/gl.h> | ||
21 | #include <GL/glext.h> | ||
22 | |||
23 | #ifdef _WIN32 /* supports windows, x -- need to generalize */ | ||
24 | # include <GL/wglext.h> | ||
25 | # define GLH_EXT_GET_PROC_ADDRESS(p) wglGetProcAddress(p) | ||
26 | #else if GLX_VERSION_1_3 | ||
27 | # include <GL/glxext.h> | ||
28 | # define GLH_EXT_GET_PROC_ADDRESS(p) glXGetProcAddressARB(p) | ||
29 | #endif | ||
30 | |||
31 | #ifdef GLH_EXT_SINGLE_FILE | ||
32 | #define GLH_EXTERN | ||
33 | #define GLH_INITIALIZER = 0 | ||
34 | #else | ||
35 | #define GLH_EXTERN extern | ||
36 | #define GLH_INITIALIZER | ||
37 | #endif | ||
38 | |||
39 | #define GLH__PREPROCESSOR_GYMNASTICS2(a,b) a##b | ||
40 | #define GLH__PREPROCESSOR_GYMNASTICS(a,b) GLH__PREPROCESSOR_GYMNASTICS2(a,b) | ||
41 | |||
42 | #ifndef GLH_EXT_PREFIX | ||
43 | # define GLH_EXT_NAME(a) a | ||
44 | #else | ||
45 | # define GLH_EXT_NAME(a) GLH__PREPROCESSOR_GYMNASTICS(GLH_EXT_PREFIX,a) | ||
46 | #endif | ||
47 | |||
48 | #ifndef _WIN32 | ||
49 | # ifndef GLH_CORE_1_2_PREFIX | ||
50 | # define GLH_CORE_1_2_PREFIX _ | ||
51 | # endif | ||
52 | #endif | ||
53 | |||
54 | #ifndef GLH_CORE_1_2_PREFIX | ||
55 | # define GLH_CORE_1_2_NAME(a) a | ||
56 | #else | ||
57 | # define GLH_CORE_1_2_NAME(a) GLH__PREPROCESSOR_GYMNASTICS(GLH_CORE_1_2_PREFIX,a) | ||
58 | #endif | ||
59 | |||
60 | #ifdef GL_ARB_multitexture | ||
61 | GLH_EXTERN PFNGLMULTITEXCOORD1DARBPROC GLH_EXT_NAME(glMultiTexCoord1dARB) GLH_INITIALIZER; | ||
62 | GLH_EXTERN PFNGLMULTITEXCOORD1DVARBPROC GLH_EXT_NAME(glMultiTexCoord1dvARB) GLH_INITIALIZER; | ||
63 | GLH_EXTERN PFNGLMULTITEXCOORD1FARBPROC GLH_EXT_NAME(glMultiTexCoord1fARB) GLH_INITIALIZER; | ||
64 | GLH_EXTERN PFNGLMULTITEXCOORD1FVARBPROC GLH_EXT_NAME(glMultiTexCoord1fvARB) GLH_INITIALIZER; | ||
65 | GLH_EXTERN PFNGLMULTITEXCOORD1IARBPROC GLH_EXT_NAME(glMultiTexCoord1iARB) GLH_INITIALIZER; | ||
66 | GLH_EXTERN PFNGLMULTITEXCOORD1IVARBPROC GLH_EXT_NAME(glMultiTexCoord1ivARB) GLH_INITIALIZER; | ||
67 | GLH_EXTERN PFNGLMULTITEXCOORD1SARBPROC GLH_EXT_NAME(glMultiTexCoord1sARB) GLH_INITIALIZER; | ||
68 | GLH_EXTERN PFNGLMULTITEXCOORD1SVARBPROC GLH_EXT_NAME(glMultiTexCoord1svARB) GLH_INITIALIZER; | ||
69 | GLH_EXTERN PFNGLMULTITEXCOORD2DARBPROC GLH_EXT_NAME(glMultiTexCoord2dARB) GLH_INITIALIZER; | ||
70 | GLH_EXTERN PFNGLMULTITEXCOORD2DVARBPROC GLH_EXT_NAME(glMultiTexCoord2dvARB) GLH_INITIALIZER; | ||
71 | GLH_EXTERN PFNGLMULTITEXCOORD2FARBPROC GLH_EXT_NAME(glMultiTexCoord2fARB) GLH_INITIALIZER; | ||
72 | GLH_EXTERN PFNGLMULTITEXCOORD2FVARBPROC GLH_EXT_NAME(glMultiTexCoord2fvARB) GLH_INITIALIZER; | ||
73 | GLH_EXTERN PFNGLMULTITEXCOORD2IARBPROC GLH_EXT_NAME(glMultiTexCoord2iARB) GLH_INITIALIZER; | ||
74 | GLH_EXTERN PFNGLMULTITEXCOORD2IVARBPROC GLH_EXT_NAME(glMultiTexCoord2ivARB) GLH_INITIALIZER; | ||
75 | GLH_EXTERN PFNGLMULTITEXCOORD2SARBPROC GLH_EXT_NAME(glMultiTexCoord2sARB) GLH_INITIALIZER; | ||
76 | GLH_EXTERN PFNGLMULTITEXCOORD2SVARBPROC GLH_EXT_NAME(glMultiTexCoord2svARB) GLH_INITIALIZER; | ||
77 | GLH_EXTERN PFNGLMULTITEXCOORD3DARBPROC GLH_EXT_NAME(glMultiTexCoord3dARB) GLH_INITIALIZER; | ||
78 | GLH_EXTERN PFNGLMULTITEXCOORD3DVARBPROC GLH_EXT_NAME(glMultiTexCoord3dvARB) GLH_INITIALIZER; | ||
79 | GLH_EXTERN PFNGLMULTITEXCOORD3FARBPROC GLH_EXT_NAME(glMultiTexCoord3fARB) GLH_INITIALIZER; | ||
80 | GLH_EXTERN PFNGLMULTITEXCOORD3FVARBPROC GLH_EXT_NAME(glMultiTexCoord3fvARB) GLH_INITIALIZER; | ||
81 | GLH_EXTERN PFNGLMULTITEXCOORD3IARBPROC GLH_EXT_NAME(glMultiTexCoord3iARB) GLH_INITIALIZER; | ||
82 | GLH_EXTERN PFNGLMULTITEXCOORD3IVARBPROC GLH_EXT_NAME(glMultiTexCoord3ivARB) GLH_INITIALIZER; | ||
83 | GLH_EXTERN PFNGLMULTITEXCOORD3SARBPROC GLH_EXT_NAME(glMultiTexCoord3sARB) GLH_INITIALIZER; | ||
84 | GLH_EXTERN PFNGLMULTITEXCOORD3SVARBPROC GLH_EXT_NAME(glMultiTexCoord3svARB) GLH_INITIALIZER; | ||
85 | GLH_EXTERN PFNGLMULTITEXCOORD4DARBPROC GLH_EXT_NAME(glMultiTexCoord4dARB) GLH_INITIALIZER; | ||
86 | GLH_EXTERN PFNGLMULTITEXCOORD4DVARBPROC GLH_EXT_NAME(glMultiTexCoord4dvARB) GLH_INITIALIZER; | ||
87 | GLH_EXTERN PFNGLMULTITEXCOORD4FARBPROC GLH_EXT_NAME(glMultiTexCoord4fARB) GLH_INITIALIZER; | ||
88 | GLH_EXTERN PFNGLMULTITEXCOORD4FVARBPROC GLH_EXT_NAME(glMultiTexCoord4fvARB) GLH_INITIALIZER; | ||
89 | GLH_EXTERN PFNGLMULTITEXCOORD4IARBPROC GLH_EXT_NAME(glMultiTexCoord4iARB) GLH_INITIALIZER; | ||
90 | GLH_EXTERN PFNGLMULTITEXCOORD4IVARBPROC GLH_EXT_NAME(glMultiTexCoord4ivARB) GLH_INITIALIZER; | ||
91 | GLH_EXTERN PFNGLMULTITEXCOORD4SARBPROC GLH_EXT_NAME(glMultiTexCoord4sARB) GLH_INITIALIZER; | ||
92 | GLH_EXTERN PFNGLMULTITEXCOORD4SVARBPROC GLH_EXT_NAME(glMultiTexCoord4svARB) GLH_INITIALIZER; | ||
93 | GLH_EXTERN PFNGLACTIVETEXTUREARBPROC GLH_EXT_NAME(glActiveTextureARB) GLH_INITIALIZER; | ||
94 | GLH_EXTERN PFNGLCLIENTACTIVETEXTUREARBPROC GLH_EXT_NAME(glClientActiveTextureARB) GLH_INITIALIZER; | ||
95 | #endif | ||
96 | |||
97 | #ifdef GL_ARB_texture_border_clamp | ||
98 | #endif | ||
99 | |||
100 | #ifdef GL_ARB_texture_compression | ||
101 | GLH_EXTERN PFNGLCOMPRESSEDTEXIMAGE3DARBPROC GLH_EXT_NAME(glCompressedTexImage3DARB) GLH_INITIALIZER; | ||
102 | GLH_EXTERN PFNGLCOMPRESSEDTEXIMAGE2DARBPROC GLH_EXT_NAME(glCompressedTexImage2DARB) GLH_INITIALIZER; | ||
103 | GLH_EXTERN PFNGLCOMPRESSEDTEXIMAGE1DARBPROC GLH_EXT_NAME(glCompressedTexImage1DARB) GLH_INITIALIZER; | ||
104 | GLH_EXTERN PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC GLH_EXT_NAME(glCompressedTexSubImage3DARB) GLH_INITIALIZER; | ||
105 | GLH_EXTERN PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC GLH_EXT_NAME(glCompressedTexSubImage2DARB) GLH_INITIALIZER; | ||
106 | GLH_EXTERN PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC GLH_EXT_NAME(glCompressedTexSubImage1DARB) GLH_INITIALIZER; | ||
107 | GLH_EXTERN PFNGLGETCOMPRESSEDTEXIMAGEARBPROC GLH_EXT_NAME(glGetCompressedTexImageARB) GLH_INITIALIZER; | ||
108 | #endif | ||
109 | |||
110 | #ifdef GL_ARB_texture_cube_map | ||
111 | #endif | ||
112 | |||
113 | #ifdef GL_ARB_transpose_matrix | ||
114 | GLH_EXTERN PFNGLLOADTRANSPOSEMATRIXFARBPROC GLH_EXT_NAME(glLoadTransposeMatrixfARB) GLH_INITIALIZER; | ||
115 | GLH_EXTERN PFNGLLOADTRANSPOSEMATRIXDARBPROC GLH_EXT_NAME(glLoadTransposeMatrixdARB) GLH_INITIALIZER; | ||
116 | GLH_EXTERN PFNGLMULTTRANSPOSEMATRIXFARBPROC GLH_EXT_NAME(glMultTransposeMatrixfARB) GLH_INITIALIZER; | ||
117 | GLH_EXTERN PFNGLMULTTRANSPOSEMATRIXDARBPROC GLH_EXT_NAME(glMultTransposeMatrixdARB) GLH_INITIALIZER; | ||
118 | #endif | ||
119 | |||
120 | #ifdef GL_ARB_vertex_program | ||
121 | GLH_EXTERN PFNGLVERTEXATTRIB1SARBPROC GLH_EXT_NAME(glVertexAttrib1sARB) GLH_INITIALIZER; | ||
122 | GLH_EXTERN PFNGLVERTEXATTRIB1FARBPROC GLH_EXT_NAME(glVertexAttrib1fARB) GLH_INITIALIZER; | ||
123 | GLH_EXTERN PFNGLVERTEXATTRIB1DARBPROC GLH_EXT_NAME(glVertexAttrib1dARB) GLH_INITIALIZER; | ||
124 | GLH_EXTERN PFNGLVERTEXATTRIB2SARBPROC GLH_EXT_NAME(glVertexAttrib2sARB) GLH_INITIALIZER; | ||
125 | GLH_EXTERN PFNGLVERTEXATTRIB2FARBPROC GLH_EXT_NAME(glVertexAttrib2fARB) GLH_INITIALIZER; | ||
126 | GLH_EXTERN PFNGLVERTEXATTRIB2DARBPROC GLH_EXT_NAME(glVertexAttrib2dARB) GLH_INITIALIZER; | ||
127 | GLH_EXTERN PFNGLVERTEXATTRIB3SARBPROC GLH_EXT_NAME(glVertexAttrib3sARB) GLH_INITIALIZER; | ||
128 | GLH_EXTERN PFNGLVERTEXATTRIB3FARBPROC GLH_EXT_NAME(glVertexAttrib3fARB) GLH_INITIALIZER; | ||
129 | GLH_EXTERN PFNGLVERTEXATTRIB3DARBPROC GLH_EXT_NAME(glVertexAttrib3dARB) GLH_INITIALIZER; | ||
130 | GLH_EXTERN PFNGLVERTEXATTRIB4SARBPROC GLH_EXT_NAME(glVertexAttrib4sARB) GLH_INITIALIZER; | ||
131 | GLH_EXTERN PFNGLVERTEXATTRIB4FARBPROC GLH_EXT_NAME(glVertexAttrib4fARB) GLH_INITIALIZER; | ||
132 | GLH_EXTERN PFNGLVERTEXATTRIB4DARBPROC GLH_EXT_NAME(glVertexAttrib4dARB) GLH_INITIALIZER; | ||
133 | GLH_EXTERN PFNGLVERTEXATTRIB4NUBARBPROC GLH_EXT_NAME(glVertexAttrib4NubARB) GLH_INITIALIZER; | ||
134 | GLH_EXTERN PFNGLVERTEXATTRIB1SVARBPROC GLH_EXT_NAME(glVertexAttrib1svARB) GLH_INITIALIZER; | ||
135 | GLH_EXTERN PFNGLVERTEXATTRIB1FVARBPROC GLH_EXT_NAME(glVertexAttrib1fvARB) GLH_INITIALIZER; | ||
136 | GLH_EXTERN PFNGLVERTEXATTRIB1DVARBPROC GLH_EXT_NAME(glVertexAttrib1dvARB) GLH_INITIALIZER; | ||
137 | GLH_EXTERN PFNGLVERTEXATTRIB2SVARBPROC GLH_EXT_NAME(glVertexAttrib2svARB) GLH_INITIALIZER; | ||
138 | GLH_EXTERN PFNGLVERTEXATTRIB2FVARBPROC GLH_EXT_NAME(glVertexAttrib2fvARB) GLH_INITIALIZER; | ||
139 | GLH_EXTERN PFNGLVERTEXATTRIB2DVARBPROC GLH_EXT_NAME(glVertexAttrib2dvARB) GLH_INITIALIZER; | ||
140 | GLH_EXTERN PFNGLVERTEXATTRIB3SVARBPROC GLH_EXT_NAME(glVertexAttrib3svARB) GLH_INITIALIZER; | ||
141 | GLH_EXTERN PFNGLVERTEXATTRIB3FVARBPROC GLH_EXT_NAME(glVertexAttrib3fvARB) GLH_INITIALIZER; | ||
142 | GLH_EXTERN PFNGLVERTEXATTRIB3DVARBPROC GLH_EXT_NAME(glVertexAttrib3dvARB) GLH_INITIALIZER; | ||
143 | GLH_EXTERN PFNGLVERTEXATTRIB4BVARBPROC GLH_EXT_NAME(glVertexAttrib4bvARB) GLH_INITIALIZER; | ||
144 | GLH_EXTERN PFNGLVERTEXATTRIB4SVARBPROC GLH_EXT_NAME(glVertexAttrib4svARB) GLH_INITIALIZER; | ||
145 | GLH_EXTERN PFNGLVERTEXATTRIB4IVARBPROC GLH_EXT_NAME(glVertexAttrib4ivARB) GLH_INITIALIZER; | ||
146 | GLH_EXTERN PFNGLVERTEXATTRIB4UBVARBPROC GLH_EXT_NAME(glVertexAttrib4ubvARB) GLH_INITIALIZER; | ||
147 | GLH_EXTERN PFNGLVERTEXATTRIB4USVARBPROC GLH_EXT_NAME(glVertexAttrib4usvARB) GLH_INITIALIZER; | ||
148 | GLH_EXTERN PFNGLVERTEXATTRIB4UIVARBPROC GLH_EXT_NAME(glVertexAttrib4uivARB) GLH_INITIALIZER; | ||
149 | GLH_EXTERN PFNGLVERTEXATTRIB4FVARBPROC GLH_EXT_NAME(glVertexAttrib4fvARB) GLH_INITIALIZER; | ||
150 | GLH_EXTERN PFNGLVERTEXATTRIB4DVARBPROC GLH_EXT_NAME(glVertexAttrib4dvARB) GLH_INITIALIZER; | ||
151 | GLH_EXTERN PFNGLVERTEXATTRIB4NBVARBPROC GLH_EXT_NAME(glVertexAttrib4NbvARB) GLH_INITIALIZER; | ||
152 | GLH_EXTERN PFNGLVERTEXATTRIB4NSVARBPROC GLH_EXT_NAME(glVertexAttrib4NsvARB) GLH_INITIALIZER; | ||
153 | GLH_EXTERN PFNGLVERTEXATTRIB4NIVARBPROC GLH_EXT_NAME(glVertexAttrib4NivARB) GLH_INITIALIZER; | ||
154 | GLH_EXTERN PFNGLVERTEXATTRIB4NUBVARBPROC GLH_EXT_NAME(glVertexAttrib4NubvARB) GLH_INITIALIZER; | ||
155 | GLH_EXTERN PFNGLVERTEXATTRIB4NUSVARBPROC GLH_EXT_NAME(glVertexAttrib4NusvARB) GLH_INITIALIZER; | ||
156 | GLH_EXTERN PFNGLVERTEXATTRIB4NUIVARBPROC GLH_EXT_NAME(glVertexAttrib4NuivARB) GLH_INITIALIZER; | ||
157 | GLH_EXTERN PFNGLVERTEXATTRIBPOINTERARBPROC GLH_EXT_NAME(glVertexAttribPointerARB) GLH_INITIALIZER; | ||
158 | GLH_EXTERN PFNGLENABLEVERTEXATTRIBARRAYARBPROC GLH_EXT_NAME(glEnableVertexAttribArrayARB) GLH_INITIALIZER; | ||
159 | GLH_EXTERN PFNGLDISABLEVERTEXATTRIBARRAYARBPROC GLH_EXT_NAME(glDisableVertexAttribArrayARB) GLH_INITIALIZER; | ||
160 | GLH_EXTERN PFNGLPROGRAMSTRINGARBPROC GLH_EXT_NAME(glProgramStringARB) GLH_INITIALIZER; | ||
161 | GLH_EXTERN PFNGLBINDPROGRAMARBPROC GLH_EXT_NAME(glBindProgramARB) GLH_INITIALIZER; | ||
162 | GLH_EXTERN PFNGLDELETEPROGRAMSARBPROC GLH_EXT_NAME(glDeleteProgramsARB) GLH_INITIALIZER; | ||
163 | GLH_EXTERN PFNGLGENPROGRAMSARBPROC GLH_EXT_NAME(glGenProgramsARB) GLH_INITIALIZER; | ||
164 | GLH_EXTERN PFNGLPROGRAMENVPARAMETER4DARBPROC GLH_EXT_NAME(glProgramEnvParameter4dARB) GLH_INITIALIZER; | ||
165 | GLH_EXTERN PFNGLPROGRAMENVPARAMETER4DVARBPROC GLH_EXT_NAME(glProgramEnvParameter4dvARB) GLH_INITIALIZER; | ||
166 | GLH_EXTERN PFNGLPROGRAMENVPARAMETER4FARBPROC GLH_EXT_NAME(glProgramEnvParameter4fARB) GLH_INITIALIZER; | ||
167 | GLH_EXTERN PFNGLPROGRAMENVPARAMETER4FVARBPROC GLH_EXT_NAME(glProgramEnvParameter4fvARB) GLH_INITIALIZER; | ||
168 | GLH_EXTERN PFNGLPROGRAMLOCALPARAMETER4DARBPROC GLH_EXT_NAME(glProgramLocalParameter4dARB) GLH_INITIALIZER; | ||
169 | GLH_EXTERN PFNGLPROGRAMLOCALPARAMETER4DVARBPROC GLH_EXT_NAME(glProgramLocalParameter4dvARB) GLH_INITIALIZER; | ||
170 | GLH_EXTERN PFNGLPROGRAMLOCALPARAMETER4FARBPROC GLH_EXT_NAME(glProgramLocalParameter4fARB) GLH_INITIALIZER; | ||
171 | GLH_EXTERN PFNGLPROGRAMLOCALPARAMETER4FVARBPROC GLH_EXT_NAME(glProgramLocalParameter4fvARB) GLH_INITIALIZER; | ||
172 | GLH_EXTERN PFNGLGETPROGRAMENVPARAMETERDVARBPROC GLH_EXT_NAME(glGetProgramEnvParameterdvARB) GLH_INITIALIZER; | ||
173 | GLH_EXTERN PFNGLGETPROGRAMENVPARAMETERFVARBPROC GLH_EXT_NAME(glGetProgramEnvParameterfvARB) GLH_INITIALIZER; | ||
174 | GLH_EXTERN PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC GLH_EXT_NAME(glGetProgramLocalParameterdvARB) GLH_INITIALIZER; | ||
175 | GLH_EXTERN PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC GLH_EXT_NAME(glGetProgramLocalParameterfvARB) GLH_INITIALIZER; | ||
176 | GLH_EXTERN PFNGLGETPROGRAMIVARBPROC GLH_EXT_NAME(glGetProgramivARB) GLH_INITIALIZER; | ||
177 | GLH_EXTERN PFNGLGETPROGRAMSTRINGARBPROC GLH_EXT_NAME(glGetProgramStringARB) GLH_INITIALIZER; | ||
178 | GLH_EXTERN PFNGLGETVERTEXATTRIBDVARBPROC GLH_EXT_NAME(glGetVertexAttribdvARB) GLH_INITIALIZER; | ||
179 | GLH_EXTERN PFNGLGETVERTEXATTRIBFVARBPROC GLH_EXT_NAME(glGetVertexAttribfvARB) GLH_INITIALIZER; | ||
180 | GLH_EXTERN PFNGLGETVERTEXATTRIBIVARBPROC GLH_EXT_NAME(glGetVertexAttribivARB) GLH_INITIALIZER; | ||
181 | GLH_EXTERN PFNGLGETVERTEXATTRIBPOINTERVARBPROC GLH_EXT_NAME(glGetVertexAttribPointervARB) GLH_INITIALIZER; | ||
182 | GLH_EXTERN PFNGLISPROGRAMARBPROC GLH_EXT_NAME(glIsProgramARB) GLH_INITIALIZER; | ||
183 | #endif | ||
184 | |||
185 | #ifdef GL_EXT_abgr | ||
186 | #endif | ||
187 | |||
188 | #ifdef GL_EXT_bgra | ||
189 | #endif | ||
190 | |||
191 | #ifdef GL_EXT_blend_color | ||
192 | GLH_EXTERN PFNGLBLENDCOLOREXTPROC GLH_EXT_NAME(glBlendColorEXT) GLH_INITIALIZER; | ||
193 | #endif | ||
194 | |||
195 | #ifdef GL_EXT_blend_minmax | ||
196 | GLH_EXTERN PFNGLBLENDEQUATIONEXTPROC GLH_EXT_NAME(glBlendEquationEXT) GLH_INITIALIZER; | ||
197 | #endif | ||
198 | |||
199 | #ifdef GL_EXT_blend_subtract | ||
200 | #endif | ||
201 | |||
202 | #ifdef GL_EXT_compiled_vertex_array | ||
203 | GLH_EXTERN PFNGLLOCKARRAYSEXTPROC GLH_EXT_NAME(glLockArraysEXT) GLH_INITIALIZER; | ||
204 | GLH_EXTERN PFNGLUNLOCKARRAYSEXTPROC GLH_EXT_NAME(glUnlockArraysEXT) GLH_INITIALIZER; | ||
205 | #endif | ||
206 | |||
207 | #ifdef GL_EXT_fog_coord | ||
208 | GLH_EXTERN PFNGLFOGCOORDDEXTPROC GLH_EXT_NAME(glFogCoorddEXT) GLH_INITIALIZER; | ||
209 | GLH_EXTERN PFNGLFOGCOORDDVEXTPROC GLH_EXT_NAME(glFogCoorddvEXT) GLH_INITIALIZER; | ||
210 | GLH_EXTERN PFNGLFOGCOORDFEXTPROC GLH_EXT_NAME(glFogCoordfEXT) GLH_INITIALIZER; | ||
211 | GLH_EXTERN PFNGLFOGCOORDFVEXTPROC GLH_EXT_NAME(glFogCoordfvEXT) GLH_INITIALIZER; | ||
212 | GLH_EXTERN PFNGLFOGCOORDPOINTEREXTPROC GLH_EXT_NAME(glFogCoordPointerEXT) GLH_INITIALIZER; | ||
213 | #endif | ||
214 | |||
215 | #ifdef GL_EXT_light_max_exponent | ||
216 | #endif | ||
217 | |||
218 | #ifdef GL_EXT_packed_pixels | ||
219 | #endif | ||
220 | |||
221 | #ifdef GL_EXT_paletted_texture | ||
222 | GLH_EXTERN PFNGLCOLORSUBTABLEEXTPROC GLH_EXT_NAME(glColorSubTableEXT) GLH_INITIALIZER; | ||
223 | GLH_EXTERN PFNGLCOLORTABLEEXTPROC GLH_EXT_NAME(glColorTableEXT) GLH_INITIALIZER; | ||
224 | GLH_EXTERN PFNGLGETCOLORTABLEEXTPROC GLH_EXT_NAME(glGetColorTableEXT) GLH_INITIALIZER; | ||
225 | GLH_EXTERN PFNGLGETCOLORTABLEPARAMETERFVEXTPROC GLH_EXT_NAME(glGetColorTableParameterfvEXT) GLH_INITIALIZER; | ||
226 | GLH_EXTERN PFNGLGETCOLORTABLEPARAMETERIVEXTPROC GLH_EXT_NAME(glGetColorTableParameterivEXT) GLH_INITIALIZER; | ||
227 | #endif | ||
228 | |||
229 | #ifdef GL_EXT_point_parameters | ||
230 | GLH_EXTERN PFNGLPOINTPARAMETERFEXTPROC GLH_EXT_NAME(glPointParameterfEXT) GLH_INITIALIZER; | ||
231 | GLH_EXTERN PFNGLPOINTPARAMETERFVEXTPROC GLH_EXT_NAME(glPointParameterfvEXT) GLH_INITIALIZER; | ||
232 | #endif | ||
233 | |||
234 | #ifdef GL_EXT_rescale_normal | ||
235 | #endif | ||
236 | |||
237 | #ifdef GL_EXT_secondary_color | ||
238 | GLH_EXTERN PFNGLSECONDARYCOLOR3BEXTPROC GLH_EXT_NAME(glSecondaryColor3bEXT) GLH_INITIALIZER; | ||
239 | GLH_EXTERN PFNGLSECONDARYCOLOR3BVEXTPROC GLH_EXT_NAME(glSecondaryColor3bvEXT) GLH_INITIALIZER; | ||
240 | GLH_EXTERN PFNGLSECONDARYCOLOR3DEXTPROC GLH_EXT_NAME(glSecondaryColor3dEXT) GLH_INITIALIZER; | ||
241 | GLH_EXTERN PFNGLSECONDARYCOLOR3DVEXTPROC GLH_EXT_NAME(glSecondaryColor3dvEXT) GLH_INITIALIZER; | ||
242 | GLH_EXTERN PFNGLSECONDARYCOLOR3FEXTPROC GLH_EXT_NAME(glSecondaryColor3fEXT) GLH_INITIALIZER; | ||
243 | GLH_EXTERN PFNGLSECONDARYCOLOR3FVEXTPROC GLH_EXT_NAME(glSecondaryColor3fvEXT) GLH_INITIALIZER; | ||
244 | GLH_EXTERN PFNGLSECONDARYCOLOR3IEXTPROC GLH_EXT_NAME(glSecondaryColor3iEXT) GLH_INITIALIZER; | ||
245 | GLH_EXTERN PFNGLSECONDARYCOLOR3IVEXTPROC GLH_EXT_NAME(glSecondaryColor3ivEXT) GLH_INITIALIZER; | ||
246 | GLH_EXTERN PFNGLSECONDARYCOLOR3SEXTPROC GLH_EXT_NAME(glSecondaryColor3sEXT) GLH_INITIALIZER; | ||
247 | GLH_EXTERN PFNGLSECONDARYCOLOR3SVEXTPROC GLH_EXT_NAME(glSecondaryColor3svEXT) GLH_INITIALIZER; | ||
248 | GLH_EXTERN PFNGLSECONDARYCOLOR3UBEXTPROC GLH_EXT_NAME(glSecondaryColor3ubEXT) GLH_INITIALIZER; | ||
249 | GLH_EXTERN PFNGLSECONDARYCOLOR3UBVEXTPROC GLH_EXT_NAME(glSecondaryColor3ubvEXT) GLH_INITIALIZER; | ||
250 | GLH_EXTERN PFNGLSECONDARYCOLOR3UIEXTPROC GLH_EXT_NAME(glSecondaryColor3uiEXT) GLH_INITIALIZER; | ||
251 | GLH_EXTERN PFNGLSECONDARYCOLOR3UIVEXTPROC GLH_EXT_NAME(glSecondaryColor3uivEXT) GLH_INITIALIZER; | ||
252 | GLH_EXTERN PFNGLSECONDARYCOLOR3USEXTPROC GLH_EXT_NAME(glSecondaryColor3usEXT) GLH_INITIALIZER; | ||
253 | GLH_EXTERN PFNGLSECONDARYCOLOR3USVEXTPROC GLH_EXT_NAME(glSecondaryColor3usvEXT) GLH_INITIALIZER; | ||
254 | GLH_EXTERN PFNGLSECONDARYCOLORPOINTEREXTPROC GLH_EXT_NAME(glSecondaryColorPointerEXT) GLH_INITIALIZER; | ||
255 | #endif | ||
256 | |||
257 | #ifdef GL_EXT_separate_specular_color | ||
258 | #endif | ||
259 | |||
260 | #ifdef GL_EXT_shared_texture_palette | ||
261 | #endif | ||
262 | |||
263 | #ifdef GL_EXT_stencil_wrap | ||
264 | #endif | ||
265 | |||
266 | #ifdef GL_EXT_texture_compression_s3tc | ||
267 | #endif | ||
268 | |||
269 | #ifdef GL_EXT_texture_cube_map | ||
270 | #endif | ||
271 | |||
272 | #ifdef GL_EXT_texture_edge_clamp | ||
273 | #endif | ||
274 | |||
275 | #ifdef GL_EXT_texture_env_add | ||
276 | #endif | ||
277 | |||
278 | #ifdef GL_EXT_texture_env_combine | ||
279 | #endif | ||
280 | |||
281 | #ifdef GL_EXT_texture_filter_anisotropic | ||
282 | #endif | ||
283 | |||
284 | #ifdef GL_EXT_texture_lod_bias | ||
285 | #endif | ||
286 | |||
287 | #ifdef GL_EXT_texture_object | ||
288 | GLH_EXTERN PFNGLARETEXTURESRESIDENTEXTPROC GLH_EXT_NAME(glAreTexturesResidentEXT) GLH_INITIALIZER; | ||
289 | GLH_EXTERN PFNGLBINDTEXTUREEXTPROC GLH_EXT_NAME(glBindTextureEXT) GLH_INITIALIZER; | ||
290 | GLH_EXTERN PFNGLDELETETEXTURESEXTPROC GLH_EXT_NAME(glDeleteTexturesEXT) GLH_INITIALIZER; | ||
291 | GLH_EXTERN PFNGLGENTEXTURESEXTPROC GLH_EXT_NAME(glGenTexturesEXT) GLH_INITIALIZER; | ||
292 | GLH_EXTERN PFNGLISTEXTUREEXTPROC GLH_EXT_NAME(glIsTextureEXT) GLH_INITIALIZER; | ||
293 | GLH_EXTERN PFNGLPRIORITIZETEXTURESEXTPROC GLH_EXT_NAME(glPrioritizeTexturesEXT) GLH_INITIALIZER; | ||
294 | #endif | ||
295 | |||
296 | #ifdef GL_EXT_texture3D | ||
297 | GLH_EXTERN PFNGLTEXIMAGE3DEXTPROC GLH_EXT_NAME(glTexImage3DEXT) GLH_INITIALIZER; | ||
298 | #endif | ||
299 | |||
300 | #ifdef GL_EXT_vertex_array | ||
301 | GLH_EXTERN PFNGLARRAYELEMENTEXTPROC GLH_EXT_NAME(glArrayElementEXT) GLH_INITIALIZER; | ||
302 | GLH_EXTERN PFNGLCOLORPOINTEREXTPROC GLH_EXT_NAME(glColorPointerEXT) GLH_INITIALIZER; | ||
303 | GLH_EXTERN PFNGLEDGEFLAGPOINTEREXTPROC GLH_EXT_NAME(glEdgeFlagPointerEXT) GLH_INITIALIZER; | ||
304 | GLH_EXTERN PFNGLGETPOINTERVEXTPROC GLH_EXT_NAME(glGetPointervEXT) GLH_INITIALIZER; | ||
305 | GLH_EXTERN PFNGLINDEXPOINTEREXTPROC GLH_EXT_NAME(glIndexPointerEXT) GLH_INITIALIZER; | ||
306 | GLH_EXTERN PFNGLNORMALPOINTEREXTPROC GLH_EXT_NAME(glNormalPointerEXT) GLH_INITIALIZER; | ||
307 | GLH_EXTERN PFNGLTEXCOORDPOINTEREXTPROC GLH_EXT_NAME(glTexCoordPointerEXT) GLH_INITIALIZER; | ||
308 | GLH_EXTERN PFNGLVERTEXPOINTEREXTPROC GLH_EXT_NAME(glVertexPointerEXT) GLH_INITIALIZER; | ||
309 | GLH_EXTERN PFNGLDRAWARRAYSEXTPROC GLH_EXT_NAME(glDrawArraysEXT) GLH_INITIALIZER; | ||
310 | #endif | ||
311 | |||
312 | #ifdef GL_EXT_vertex_weighting | ||
313 | GLH_EXTERN PFNGLVERTEXWEIGHTFEXTPROC GLH_EXT_NAME(glVertexWeightfEXT) GLH_INITIALIZER; | ||
314 | GLH_EXTERN PFNGLVERTEXWEIGHTFVEXTPROC GLH_EXT_NAME(glVertexWeightfvEXT) GLH_INITIALIZER; | ||
315 | GLH_EXTERN PFNGLVERTEXWEIGHTPOINTEREXTPROC GLH_EXT_NAME(glVertexWeightPointerEXT) GLH_INITIALIZER; | ||
316 | #endif | ||
317 | |||
318 | #ifdef GL_NV_blend_square | ||
319 | #endif | ||
320 | |||
321 | #ifdef GL_NV_evaluators | ||
322 | GLH_EXTERN PFNGLMAPCONTROLPOINTSNVPROC GLH_EXT_NAME(glMapControlPointsNV) GLH_INITIALIZER; | ||
323 | GLH_EXTERN PFNGLMAPPARAMETERIVNVPROC GLH_EXT_NAME(glMapParameterivNV) GLH_INITIALIZER; | ||
324 | GLH_EXTERN PFNGLMAPPARAMETERFVNVPROC GLH_EXT_NAME(glMapParameterfvNV) GLH_INITIALIZER; | ||
325 | GLH_EXTERN PFNGLGETMAPCONTROLPOINTSNVPROC GLH_EXT_NAME(glGetMapControlPointsNV) GLH_INITIALIZER; | ||
326 | GLH_EXTERN PFNGLGETMAPPARAMETERIVNVPROC GLH_EXT_NAME(glGetMapParameterivNV) GLH_INITIALIZER; | ||
327 | GLH_EXTERN PFNGLGETMAPPARAMETERFVNVPROC GLH_EXT_NAME(glGetMapParameterfvNV) GLH_INITIALIZER; | ||
328 | GLH_EXTERN PFNGLGETMAPATTRIBPARAMETERIVNVPROC GLH_EXT_NAME(glGetMapAttribParameterivNV) GLH_INITIALIZER; | ||
329 | GLH_EXTERN PFNGLGETMAPATTRIBPARAMETERFVNVPROC GLH_EXT_NAME(glGetMapAttribParameterfvNV) GLH_INITIALIZER; | ||
330 | GLH_EXTERN PFNGLEVALMAPSNVPROC GLH_EXT_NAME(glEvalMapsNV) GLH_INITIALIZER; | ||
331 | #endif | ||
332 | |||
333 | #ifdef GL_NV_fence | ||
334 | GLH_EXTERN PFNGLGENFENCESNVPROC GLH_EXT_NAME(glGenFencesNV) GLH_INITIALIZER; | ||
335 | GLH_EXTERN PFNGLDELETEFENCESNVPROC GLH_EXT_NAME(glDeleteFencesNV) GLH_INITIALIZER; | ||
336 | GLH_EXTERN PFNGLSETFENCENVPROC GLH_EXT_NAME(glSetFenceNV) GLH_INITIALIZER; | ||
337 | GLH_EXTERN PFNGLTESTFENCENVPROC GLH_EXT_NAME(glTestFenceNV) GLH_INITIALIZER; | ||
338 | GLH_EXTERN PFNGLFINISHFENCENVPROC GLH_EXT_NAME(glFinishFenceNV) GLH_INITIALIZER; | ||
339 | GLH_EXTERN PFNGLISFENCENVPROC GLH_EXT_NAME(glIsFenceNV) GLH_INITIALIZER; | ||
340 | GLH_EXTERN PFNGLGETFENCEIVNVPROC GLH_EXT_NAME(glGetFenceivNV) GLH_INITIALIZER; | ||
341 | #endif | ||
342 | |||
343 | #ifdef GL_NV_fog_distance | ||
344 | #endif | ||
345 | |||
346 | #ifdef GL_NV_packed_depth_stencil | ||
347 | #endif | ||
348 | |||
349 | #ifdef GL_NV_register_combiners | ||
350 | GLH_EXTERN PFNGLCOMBINERPARAMETERFVNVPROC GLH_EXT_NAME(glCombinerParameterfvNV) GLH_INITIALIZER; | ||
351 | GLH_EXTERN PFNGLCOMBINERPARAMETERFNVPROC GLH_EXT_NAME(glCombinerParameterfNV) GLH_INITIALIZER; | ||
352 | GLH_EXTERN PFNGLCOMBINERPARAMETERIVNVPROC GLH_EXT_NAME(glCombinerParameterivNV) GLH_INITIALIZER; | ||
353 | GLH_EXTERN PFNGLCOMBINERPARAMETERINVPROC GLH_EXT_NAME(glCombinerParameteriNV) GLH_INITIALIZER; | ||
354 | GLH_EXTERN PFNGLCOMBINERINPUTNVPROC GLH_EXT_NAME(glCombinerInputNV) GLH_INITIALIZER; | ||
355 | GLH_EXTERN PFNGLCOMBINEROUTPUTNVPROC GLH_EXT_NAME(glCombinerOutputNV) GLH_INITIALIZER; | ||
356 | GLH_EXTERN PFNGLFINALCOMBINERINPUTNVPROC GLH_EXT_NAME(glFinalCombinerInputNV) GLH_INITIALIZER; | ||
357 | GLH_EXTERN PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC GLH_EXT_NAME(glGetCombinerInputParameterfvNV) GLH_INITIALIZER; | ||
358 | GLH_EXTERN PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC GLH_EXT_NAME(glGetCombinerInputParameterivNV) GLH_INITIALIZER; | ||
359 | GLH_EXTERN PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC GLH_EXT_NAME(glGetCombinerOutputParameterfvNV) GLH_INITIALIZER; | ||
360 | GLH_EXTERN PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC GLH_EXT_NAME(glGetCombinerOutputParameterivNV) GLH_INITIALIZER; | ||
361 | GLH_EXTERN PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC GLH_EXT_NAME(glGetFinalCombinerInputParameterfvNV) GLH_INITIALIZER; | ||
362 | GLH_EXTERN PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC GLH_EXT_NAME(glGetFinalCombinerInputParameterivNV) GLH_INITIALIZER; | ||
363 | #endif | ||
364 | |||
365 | #ifdef GL_NV_register_combiners2 | ||
366 | GLH_EXTERN PFNGLCOMBINERSTAGEPARAMETERFVNVPROC GLH_EXT_NAME(glCombinerStageParameterfvNV) GLH_INITIALIZER; | ||
367 | GLH_EXTERN PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC GLH_EXT_NAME(glGetCombinerStageParameterfvNV) GLH_INITIALIZER; | ||
368 | #endif | ||
369 | |||
370 | #ifdef GL_NV_texgen_reflection | ||
371 | #endif | ||
372 | |||
373 | #ifdef GL_NV_texture_env_combine4 | ||
374 | #endif | ||
375 | |||
376 | #ifdef GL_NV_texture_rectangle | ||
377 | #endif | ||
378 | |||
379 | #ifdef GL_NV_texture_shader | ||
380 | #endif | ||
381 | |||
382 | #ifdef GL_NV_vertex_array_range | ||
383 | GLH_EXTERN PFNGLFLUSHVERTEXARRAYRANGENVPROC GLH_EXT_NAME(glFlushVertexArrayRangeNV) GLH_INITIALIZER; | ||
384 | GLH_EXTERN PFNGLVERTEXARRAYRANGENVPROC GLH_EXT_NAME(glVertexArrayRangeNV) GLH_INITIALIZER; | ||
385 | # ifdef _WIN32 | ||
386 | GLH_EXTERN PFNWGLALLOCATEMEMORYNVPROC GLH_EXT_NAME(wglAllocateMemoryNV) GLH_INITIALIZER; | ||
387 | # endif | ||
388 | # ifdef GLX_VERSION_1_3 | ||
389 | GLH_EXTERN PFNGLXALLOCATEMEMORYNVPROC GLH_EXT_NAME(glXAllocateMemoryNV) GLH_INITIALIZER; | ||
390 | # endif | ||
391 | # ifdef _WIN32 | ||
392 | GLH_EXTERN PFNWGLFREEMEMORYNVPROC GLH_EXT_NAME(wglFreeMemoryNV) GLH_INITIALIZER; | ||
393 | # endif | ||
394 | # ifdef GLX_VERSION_1_3 | ||
395 | GLH_EXTERN PFNGLXFREEMEMORYNVPROC GLH_EXT_NAME(glXFreeMemoryNV) GLH_INITIALIZER; | ||
396 | # endif | ||
397 | #endif | ||
398 | |||
399 | #ifdef GL_NV_vertex_program | ||
400 | GLH_EXTERN PFNGLAREPROGRAMSRESIDENTNVPROC GLH_EXT_NAME(glAreProgramsResidentNV) GLH_INITIALIZER; | ||
401 | GLH_EXTERN PFNGLBINDPROGRAMNVPROC GLH_EXT_NAME(glBindProgramNV) GLH_INITIALIZER; | ||
402 | GLH_EXTERN PFNGLDELETEPROGRAMSNVPROC GLH_EXT_NAME(glDeleteProgramsNV) GLH_INITIALIZER; | ||
403 | GLH_EXTERN PFNGLEXECUTEPROGRAMNVPROC GLH_EXT_NAME(glExecuteProgramNV) GLH_INITIALIZER; | ||
404 | GLH_EXTERN PFNGLGENPROGRAMSNVPROC GLH_EXT_NAME(glGenProgramsNV) GLH_INITIALIZER; | ||
405 | GLH_EXTERN PFNGLGETPROGRAMPARAMETERDVNVPROC GLH_EXT_NAME(glGetProgramParameterdvNV) GLH_INITIALIZER; | ||
406 | GLH_EXTERN PFNGLGETPROGRAMPARAMETERFVNVPROC GLH_EXT_NAME(glGetProgramParameterfvNV) GLH_INITIALIZER; | ||
407 | GLH_EXTERN PFNGLGETPROGRAMIVNVPROC GLH_EXT_NAME(glGetProgramivNV) GLH_INITIALIZER; | ||
408 | GLH_EXTERN PFNGLGETPROGRAMSTRINGNVPROC GLH_EXT_NAME(glGetProgramStringNV) GLH_INITIALIZER; | ||
409 | GLH_EXTERN PFNGLGETTRACKMATRIXIVNVPROC GLH_EXT_NAME(glGetTrackMatrixivNV) GLH_INITIALIZER; | ||
410 | GLH_EXTERN PFNGLGETVERTEXATTRIBDVNVPROC GLH_EXT_NAME(glGetVertexAttribdvNV) GLH_INITIALIZER; | ||
411 | GLH_EXTERN PFNGLGETVERTEXATTRIBFVNVPROC GLH_EXT_NAME(glGetVertexAttribfvNV) GLH_INITIALIZER; | ||
412 | GLH_EXTERN PFNGLGETVERTEXATTRIBIVNVPROC GLH_EXT_NAME(glGetVertexAttribivNV) GLH_INITIALIZER; | ||
413 | GLH_EXTERN PFNGLGETVERTEXATTRIBPOINTERVNVPROC GLH_EXT_NAME(glGetVertexAttribPointervNV) GLH_INITIALIZER; | ||
414 | GLH_EXTERN PFNGLISPROGRAMNVPROC GLH_EXT_NAME(glIsProgramNV) GLH_INITIALIZER; | ||
415 | GLH_EXTERN PFNGLLOADPROGRAMNVPROC GLH_EXT_NAME(glLoadProgramNV) GLH_INITIALIZER; | ||
416 | GLH_EXTERN PFNGLPROGRAMPARAMETER4DNVPROC GLH_EXT_NAME(glProgramParameter4dNV) GLH_INITIALIZER; | ||
417 | GLH_EXTERN PFNGLPROGRAMPARAMETER4DVNVPROC GLH_EXT_NAME(glProgramParameter4dvNV) GLH_INITIALIZER; | ||
418 | GLH_EXTERN PFNGLPROGRAMPARAMETER4FNVPROC GLH_EXT_NAME(glProgramParameter4fNV) GLH_INITIALIZER; | ||
419 | GLH_EXTERN PFNGLPROGRAMPARAMETER4FVNVPROC GLH_EXT_NAME(glProgramParameter4fvNV) GLH_INITIALIZER; | ||
420 | GLH_EXTERN PFNGLPROGRAMPARAMETERS4DVNVPROC GLH_EXT_NAME(glProgramParameters4dvNV) GLH_INITIALIZER; | ||
421 | GLH_EXTERN PFNGLPROGRAMPARAMETERS4FVNVPROC GLH_EXT_NAME(glProgramParameters4fvNV) GLH_INITIALIZER; | ||
422 | GLH_EXTERN PFNGLREQUESTRESIDENTPROGRAMSNVPROC GLH_EXT_NAME(glRequestResidentProgramsNV) GLH_INITIALIZER; | ||
423 | GLH_EXTERN PFNGLTRACKMATRIXNVPROC GLH_EXT_NAME(glTrackMatrixNV) GLH_INITIALIZER; | ||
424 | GLH_EXTERN PFNGLVERTEXATTRIBPOINTERNVPROC GLH_EXT_NAME(glVertexAttribPointerNV) GLH_INITIALIZER; | ||
425 | GLH_EXTERN PFNGLVERTEXATTRIB1DNVPROC GLH_EXT_NAME(glVertexAttrib1dNV) GLH_INITIALIZER; | ||
426 | GLH_EXTERN PFNGLVERTEXATTRIB1DVNVPROC GLH_EXT_NAME(glVertexAttrib1dvNV) GLH_INITIALIZER; | ||
427 | GLH_EXTERN PFNGLVERTEXATTRIB1FNVPROC GLH_EXT_NAME(glVertexAttrib1fNV) GLH_INITIALIZER; | ||
428 | GLH_EXTERN PFNGLVERTEXATTRIB1FVNVPROC GLH_EXT_NAME(glVertexAttrib1fvNV) GLH_INITIALIZER; | ||
429 | GLH_EXTERN PFNGLVERTEXATTRIB1SNVPROC GLH_EXT_NAME(glVertexAttrib1sNV) GLH_INITIALIZER; | ||
430 | GLH_EXTERN PFNGLVERTEXATTRIB1SVNVPROC GLH_EXT_NAME(glVertexAttrib1svNV) GLH_INITIALIZER; | ||
431 | GLH_EXTERN PFNGLVERTEXATTRIB2DNVPROC GLH_EXT_NAME(glVertexAttrib2dNV) GLH_INITIALIZER; | ||
432 | GLH_EXTERN PFNGLVERTEXATTRIB2DVNVPROC GLH_EXT_NAME(glVertexAttrib2dvNV) GLH_INITIALIZER; | ||
433 | GLH_EXTERN PFNGLVERTEXATTRIB2FNVPROC GLH_EXT_NAME(glVertexAttrib2fNV) GLH_INITIALIZER; | ||
434 | GLH_EXTERN PFNGLVERTEXATTRIB2FVNVPROC GLH_EXT_NAME(glVertexAttrib2fvNV) GLH_INITIALIZER; | ||
435 | GLH_EXTERN PFNGLVERTEXATTRIB2SNVPROC GLH_EXT_NAME(glVertexAttrib2sNV) GLH_INITIALIZER; | ||
436 | GLH_EXTERN PFNGLVERTEXATTRIB2SVNVPROC GLH_EXT_NAME(glVertexAttrib2svNV) GLH_INITIALIZER; | ||
437 | GLH_EXTERN PFNGLVERTEXATTRIB3DNVPROC GLH_EXT_NAME(glVertexAttrib3dNV) GLH_INITIALIZER; | ||
438 | GLH_EXTERN PFNGLVERTEXATTRIB3DVNVPROC GLH_EXT_NAME(glVertexAttrib3dvNV) GLH_INITIALIZER; | ||
439 | GLH_EXTERN PFNGLVERTEXATTRIB3FNVPROC GLH_EXT_NAME(glVertexAttrib3fNV) GLH_INITIALIZER; | ||
440 | GLH_EXTERN PFNGLVERTEXATTRIB3FVNVPROC GLH_EXT_NAME(glVertexAttrib3fvNV) GLH_INITIALIZER; | ||
441 | GLH_EXTERN PFNGLVERTEXATTRIB3SNVPROC GLH_EXT_NAME(glVertexAttrib3sNV) GLH_INITIALIZER; | ||
442 | GLH_EXTERN PFNGLVERTEXATTRIB3SVNVPROC GLH_EXT_NAME(glVertexAttrib3svNV) GLH_INITIALIZER; | ||
443 | GLH_EXTERN PFNGLVERTEXATTRIB4DNVPROC GLH_EXT_NAME(glVertexAttrib4dNV) GLH_INITIALIZER; | ||
444 | GLH_EXTERN PFNGLVERTEXATTRIB4DVNVPROC GLH_EXT_NAME(glVertexAttrib4dvNV) GLH_INITIALIZER; | ||
445 | GLH_EXTERN PFNGLVERTEXATTRIB4FNVPROC GLH_EXT_NAME(glVertexAttrib4fNV) GLH_INITIALIZER; | ||
446 | GLH_EXTERN PFNGLVERTEXATTRIB4FVNVPROC GLH_EXT_NAME(glVertexAttrib4fvNV) GLH_INITIALIZER; | ||
447 | GLH_EXTERN PFNGLVERTEXATTRIB4SNVPROC GLH_EXT_NAME(glVertexAttrib4sNV) GLH_INITIALIZER; | ||
448 | GLH_EXTERN PFNGLVERTEXATTRIB4SVNVPROC GLH_EXT_NAME(glVertexAttrib4svNV) GLH_INITIALIZER; | ||
449 | GLH_EXTERN PFNGLVERTEXATTRIB4UBVNVPROC GLH_EXT_NAME(glVertexAttrib4ubvNV) GLH_INITIALIZER; | ||
450 | GLH_EXTERN PFNGLVERTEXATTRIBS1DVNVPROC GLH_EXT_NAME(glVertexAttribs1dvNV) GLH_INITIALIZER; | ||
451 | GLH_EXTERN PFNGLVERTEXATTRIBS1FVNVPROC GLH_EXT_NAME(glVertexAttribs1fvNV) GLH_INITIALIZER; | ||
452 | GLH_EXTERN PFNGLVERTEXATTRIBS1SVNVPROC GLH_EXT_NAME(glVertexAttribs1svNV) GLH_INITIALIZER; | ||
453 | GLH_EXTERN PFNGLVERTEXATTRIBS2DVNVPROC GLH_EXT_NAME(glVertexAttribs2dvNV) GLH_INITIALIZER; | ||
454 | GLH_EXTERN PFNGLVERTEXATTRIBS2FVNVPROC GLH_EXT_NAME(glVertexAttribs2fvNV) GLH_INITIALIZER; | ||
455 | GLH_EXTERN PFNGLVERTEXATTRIBS2SVNVPROC GLH_EXT_NAME(glVertexAttribs2svNV) GLH_INITIALIZER; | ||
456 | GLH_EXTERN PFNGLVERTEXATTRIBS3DVNVPROC GLH_EXT_NAME(glVertexAttribs3dvNV) GLH_INITIALIZER; | ||
457 | GLH_EXTERN PFNGLVERTEXATTRIBS3FVNVPROC GLH_EXT_NAME(glVertexAttribs3fvNV) GLH_INITIALIZER; | ||
458 | GLH_EXTERN PFNGLVERTEXATTRIBS3SVNVPROC GLH_EXT_NAME(glVertexAttribs3svNV) GLH_INITIALIZER; | ||
459 | GLH_EXTERN PFNGLVERTEXATTRIBS4DVNVPROC GLH_EXT_NAME(glVertexAttribs4dvNV) GLH_INITIALIZER; | ||
460 | GLH_EXTERN PFNGLVERTEXATTRIBS4FVNVPROC GLH_EXT_NAME(glVertexAttribs4fvNV) GLH_INITIALIZER; | ||
461 | GLH_EXTERN PFNGLVERTEXATTRIBS4SVNVPROC GLH_EXT_NAME(glVertexAttribs4svNV) GLH_INITIALIZER; | ||
462 | GLH_EXTERN PFNGLVERTEXATTRIBS4UBVNVPROC GLH_EXT_NAME(glVertexAttribs4ubvNV) GLH_INITIALIZER; | ||
463 | #endif | ||
464 | |||
465 | #ifdef GL_SGIS_generate_mipmap | ||
466 | #endif | ||
467 | |||
468 | #ifdef GL_SGIS_texture_lod | ||
469 | #endif | ||
470 | |||
471 | #ifdef GL_SGIX_depth_texture | ||
472 | #endif | ||
473 | |||
474 | #ifdef GL_SGIX_shadow | ||
475 | #endif | ||
476 | |||
477 | #ifdef GL_VERSION_1_2 | ||
478 | /* These routines are prefixed by the preprocessor constant | ||
479 | GLH_CORE_1_2_PREFIX to avoid colliding with the OpenGL 1.2 namespace. */ | ||
480 | GLH_EXTERN PFNGLBLENDCOLORPROC GLH_CORE_1_2_NAME(glBlendColor) GLH_INITIALIZER; | ||
481 | GLH_EXTERN PFNGLBLENDEQUATIONPROC GLH_CORE_1_2_NAME(glBlendEquation) GLH_INITIALIZER; | ||
482 | GLH_EXTERN PFNGLDRAWRANGEELEMENTSPROC GLH_CORE_1_2_NAME(glDrawRangeElements) GLH_INITIALIZER; | ||
483 | GLH_EXTERN PFNGLCOLORTABLEPROC GLH_CORE_1_2_NAME(glColorTable) GLH_INITIALIZER; | ||
484 | GLH_EXTERN PFNGLCOLORTABLEPARAMETERFVPROC GLH_CORE_1_2_NAME(glColorTableParameterfv) GLH_INITIALIZER; | ||
485 | GLH_EXTERN PFNGLCOLORTABLEPARAMETERIVPROC GLH_CORE_1_2_NAME(glColorTableParameteriv) GLH_INITIALIZER; | ||
486 | GLH_EXTERN PFNGLCOPYCOLORTABLEPROC GLH_CORE_1_2_NAME(glCopyColorTable) GLH_INITIALIZER; | ||
487 | GLH_EXTERN PFNGLGETCOLORTABLEPROC GLH_CORE_1_2_NAME(glGetColorTable) GLH_INITIALIZER; | ||
488 | GLH_EXTERN PFNGLGETCOLORTABLEPARAMETERFVPROC GLH_CORE_1_2_NAME(glGetColorTableParameterfv) GLH_INITIALIZER; | ||
489 | GLH_EXTERN PFNGLGETCOLORTABLEPARAMETERIVPROC GLH_CORE_1_2_NAME(glGetColorTableParameteriv) GLH_INITIALIZER; | ||
490 | GLH_EXTERN PFNGLTEXIMAGE3DPROC GLH_CORE_1_2_NAME(glTexImage3D) GLH_INITIALIZER; | ||
491 | GLH_EXTERN PFNGLTEXSUBIMAGE3DPROC GLH_CORE_1_2_NAME(glTexSubImage3D) GLH_INITIALIZER; | ||
492 | GLH_EXTERN PFNGLCOPYTEXSUBIMAGE3DPROC GLH_CORE_1_2_NAME(glCopyTexSubImage3D) GLH_INITIALIZER; | ||
493 | #endif | ||
494 | |||
495 | #ifdef GL_WIN_swap_hint | ||
496 | GLH_EXTERN PFNGLADDSWAPHINTRECTWINPROC GLH_EXT_NAME(glAddSwapHintRectWIN) GLH_INITIALIZER; | ||
497 | #endif | ||
498 | |||
499 | #ifdef WGL_ARB_pbuffer | ||
500 | # ifdef _WIN32 | ||
501 | GLH_EXTERN PFNWGLCREATEPBUFFERARBPROC GLH_EXT_NAME(wglCreatePbufferARB) GLH_INITIALIZER; | ||
502 | # endif | ||
503 | # ifdef _WIN32 | ||
504 | GLH_EXTERN PFNWGLGETPBUFFERDCARBPROC GLH_EXT_NAME(wglGetPbufferDCARB) GLH_INITIALIZER; | ||
505 | # endif | ||
506 | # ifdef _WIN32 | ||
507 | GLH_EXTERN PFNWGLRELEASEPBUFFERDCARBPROC GLH_EXT_NAME(wglReleasePbufferDCARB) GLH_INITIALIZER; | ||
508 | # endif | ||
509 | # ifdef _WIN32 | ||
510 | GLH_EXTERN PFNWGLDESTROYPBUFFERARBPROC GLH_EXT_NAME(wglDestroyPbufferARB) GLH_INITIALIZER; | ||
511 | # endif | ||
512 | # ifdef _WIN32 | ||
513 | GLH_EXTERN PFNWGLQUERYPBUFFERARBPROC GLH_EXT_NAME(wglQueryPbufferARB) GLH_INITIALIZER; | ||
514 | # endif | ||
515 | #endif | ||
516 | |||
517 | #ifdef WGL_ARB_render_texture | ||
518 | # ifdef _WIN32 | ||
519 | GLH_EXTERN PFNWGLBINDTEXIMAGEARBPROC GLH_EXT_NAME(wglBindTexImageARB) GLH_INITIALIZER; | ||
520 | # endif | ||
521 | # ifdef _WIN32 | ||
522 | GLH_EXTERN PFNWGLRELEASETEXIMAGEARBPROC GLH_EXT_NAME(wglReleaseTexImageARB) GLH_INITIALIZER; | ||
523 | # endif | ||
524 | # ifdef _WIN32 | ||
525 | GLH_EXTERN PFNWGLSETPBUFFERATTRIBARBPROC GLH_EXT_NAME(wglSetPbufferAttribARB) GLH_INITIALIZER; | ||
526 | # endif | ||
527 | #endif | ||
528 | |||
529 | #ifdef WGL_ARB_pixel_format | ||
530 | # ifdef _WIN32 | ||
531 | GLH_EXTERN PFNWGLGETPIXELFORMATATTRIBIVARBPROC GLH_EXT_NAME(wglGetPixelFormatAttribivARB) GLH_INITIALIZER; | ||
532 | # endif | ||
533 | # ifdef _WIN32 | ||
534 | GLH_EXTERN PFNWGLGETPIXELFORMATATTRIBFVARBPROC GLH_EXT_NAME(wglGetPixelFormatAttribfvARB) GLH_INITIALIZER; | ||
535 | # endif | ||
536 | # ifdef _WIN32 | ||
537 | GLH_EXTERN PFNWGLCHOOSEPIXELFORMATARBPROC GLH_EXT_NAME(wglChoosePixelFormatARB) GLH_INITIALIZER; | ||
538 | # endif | ||
539 | #endif | ||
540 | |||
541 | |||
542 | #ifdef GLH_EXT_SINGLE_FILE | ||
543 | |||
544 | int glh_init_extension(const char* extension) | ||
545 | { | ||
546 | if (NULL == extension) { | ||
547 | return FALSE; | ||
548 | #ifdef GL_ARB_multitexture | ||
549 | } else if (0 == strcmp(extension, "GL_ARB_multitexture")) { | ||
550 | GLH_EXT_NAME(glMultiTexCoord1dARB) = (PFNGLMULTITEXCOORD1DARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord1dARB"); | ||
551 | if (NULL == GLH_EXT_NAME(glMultiTexCoord1dARB)) | ||
552 | return FALSE; | ||
553 | GLH_EXT_NAME(glMultiTexCoord1dvARB) = (PFNGLMULTITEXCOORD1DVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord1dvARB"); | ||
554 | if (NULL == GLH_EXT_NAME(glMultiTexCoord1dvARB)) | ||
555 | return FALSE; | ||
556 | GLH_EXT_NAME(glMultiTexCoord1fARB) = (PFNGLMULTITEXCOORD1FARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord1fARB"); | ||
557 | if (NULL == GLH_EXT_NAME(glMultiTexCoord1fARB)) | ||
558 | return FALSE; | ||
559 | GLH_EXT_NAME(glMultiTexCoord1fvARB) = (PFNGLMULTITEXCOORD1FVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord1fvARB"); | ||
560 | if (NULL == GLH_EXT_NAME(glMultiTexCoord1fvARB)) | ||
561 | return FALSE; | ||
562 | GLH_EXT_NAME(glMultiTexCoord1iARB) = (PFNGLMULTITEXCOORD1IARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord1iARB"); | ||
563 | if (NULL == GLH_EXT_NAME(glMultiTexCoord1iARB)) | ||
564 | return FALSE; | ||
565 | GLH_EXT_NAME(glMultiTexCoord1ivARB) = (PFNGLMULTITEXCOORD1IVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord1ivARB"); | ||
566 | if (NULL == GLH_EXT_NAME(glMultiTexCoord1ivARB)) | ||
567 | return FALSE; | ||
568 | GLH_EXT_NAME(glMultiTexCoord1sARB) = (PFNGLMULTITEXCOORD1SARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord1sARB"); | ||
569 | if (NULL == GLH_EXT_NAME(glMultiTexCoord1sARB)) | ||
570 | return FALSE; | ||
571 | GLH_EXT_NAME(glMultiTexCoord1svARB) = (PFNGLMULTITEXCOORD1SVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord1svARB"); | ||
572 | if (NULL == GLH_EXT_NAME(glMultiTexCoord1svARB)) | ||
573 | return FALSE; | ||
574 | GLH_EXT_NAME(glMultiTexCoord2dARB) = (PFNGLMULTITEXCOORD2DARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord2dARB"); | ||
575 | if (NULL == GLH_EXT_NAME(glMultiTexCoord2dARB)) | ||
576 | return FALSE; | ||
577 | GLH_EXT_NAME(glMultiTexCoord2dvARB) = (PFNGLMULTITEXCOORD2DVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord2dvARB"); | ||
578 | if (NULL == GLH_EXT_NAME(glMultiTexCoord2dvARB)) | ||
579 | return FALSE; | ||
580 | GLH_EXT_NAME(glMultiTexCoord2fARB) = (PFNGLMULTITEXCOORD2FARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord2fARB"); | ||
581 | if (NULL == GLH_EXT_NAME(glMultiTexCoord2fARB)) | ||
582 | return FALSE; | ||
583 | GLH_EXT_NAME(glMultiTexCoord2fvARB) = (PFNGLMULTITEXCOORD2FVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord2fvARB"); | ||
584 | if (NULL == GLH_EXT_NAME(glMultiTexCoord2fvARB)) | ||
585 | return FALSE; | ||
586 | GLH_EXT_NAME(glMultiTexCoord2iARB) = (PFNGLMULTITEXCOORD2IARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord2iARB"); | ||
587 | if (NULL == GLH_EXT_NAME(glMultiTexCoord2iARB)) | ||
588 | return FALSE; | ||
589 | GLH_EXT_NAME(glMultiTexCoord2ivARB) = (PFNGLMULTITEXCOORD2IVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord2ivARB"); | ||
590 | if (NULL == GLH_EXT_NAME(glMultiTexCoord2ivARB)) | ||
591 | return FALSE; | ||
592 | GLH_EXT_NAME(glMultiTexCoord2sARB) = (PFNGLMULTITEXCOORD2SARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord2sARB"); | ||
593 | if (NULL == GLH_EXT_NAME(glMultiTexCoord2sARB)) | ||
594 | return FALSE; | ||
595 | GLH_EXT_NAME(glMultiTexCoord2svARB) = (PFNGLMULTITEXCOORD2SVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord2svARB"); | ||
596 | if (NULL == GLH_EXT_NAME(glMultiTexCoord2svARB)) | ||
597 | return FALSE; | ||
598 | GLH_EXT_NAME(glMultiTexCoord3dARB) = (PFNGLMULTITEXCOORD3DARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord3dARB"); | ||
599 | if (NULL == GLH_EXT_NAME(glMultiTexCoord3dARB)) | ||
600 | return FALSE; | ||
601 | GLH_EXT_NAME(glMultiTexCoord3dvARB) = (PFNGLMULTITEXCOORD3DVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord3dvARB"); | ||
602 | if (NULL == GLH_EXT_NAME(glMultiTexCoord3dvARB)) | ||
603 | return FALSE; | ||
604 | GLH_EXT_NAME(glMultiTexCoord3fARB) = (PFNGLMULTITEXCOORD3FARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord3fARB"); | ||
605 | if (NULL == GLH_EXT_NAME(glMultiTexCoord3fARB)) | ||
606 | return FALSE; | ||
607 | GLH_EXT_NAME(glMultiTexCoord3fvARB) = (PFNGLMULTITEXCOORD3FVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord3fvARB"); | ||
608 | if (NULL == GLH_EXT_NAME(glMultiTexCoord3fvARB)) | ||
609 | return FALSE; | ||
610 | GLH_EXT_NAME(glMultiTexCoord3iARB) = (PFNGLMULTITEXCOORD3IARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord3iARB"); | ||
611 | if (NULL == GLH_EXT_NAME(glMultiTexCoord3iARB)) | ||
612 | return FALSE; | ||
613 | GLH_EXT_NAME(glMultiTexCoord3ivARB) = (PFNGLMULTITEXCOORD3IVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord3ivARB"); | ||
614 | if (NULL == GLH_EXT_NAME(glMultiTexCoord3ivARB)) | ||
615 | return FALSE; | ||
616 | GLH_EXT_NAME(glMultiTexCoord3sARB) = (PFNGLMULTITEXCOORD3SARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord3sARB"); | ||
617 | if (NULL == GLH_EXT_NAME(glMultiTexCoord3sARB)) | ||
618 | return FALSE; | ||
619 | GLH_EXT_NAME(glMultiTexCoord3svARB) = (PFNGLMULTITEXCOORD3SVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord3svARB"); | ||
620 | if (NULL == GLH_EXT_NAME(glMultiTexCoord3svARB)) | ||
621 | return FALSE; | ||
622 | GLH_EXT_NAME(glMultiTexCoord4dARB) = (PFNGLMULTITEXCOORD4DARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord4dARB"); | ||
623 | if (NULL == GLH_EXT_NAME(glMultiTexCoord4dARB)) | ||
624 | return FALSE; | ||
625 | GLH_EXT_NAME(glMultiTexCoord4dvARB) = (PFNGLMULTITEXCOORD4DVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord4dvARB"); | ||
626 | if (NULL == GLH_EXT_NAME(glMultiTexCoord4dvARB)) | ||
627 | return FALSE; | ||
628 | GLH_EXT_NAME(glMultiTexCoord4fARB) = (PFNGLMULTITEXCOORD4FARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord4fARB"); | ||
629 | if (NULL == GLH_EXT_NAME(glMultiTexCoord4fARB)) | ||
630 | return FALSE; | ||
631 | GLH_EXT_NAME(glMultiTexCoord4fvARB) = (PFNGLMULTITEXCOORD4FVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord4fvARB"); | ||
632 | if (NULL == GLH_EXT_NAME(glMultiTexCoord4fvARB)) | ||
633 | return FALSE; | ||
634 | GLH_EXT_NAME(glMultiTexCoord4iARB) = (PFNGLMULTITEXCOORD4IARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord4iARB"); | ||
635 | if (NULL == GLH_EXT_NAME(glMultiTexCoord4iARB)) | ||
636 | return FALSE; | ||
637 | GLH_EXT_NAME(glMultiTexCoord4ivARB) = (PFNGLMULTITEXCOORD4IVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord4ivARB"); | ||
638 | if (NULL == GLH_EXT_NAME(glMultiTexCoord4ivARB)) | ||
639 | return FALSE; | ||
640 | GLH_EXT_NAME(glMultiTexCoord4sARB) = (PFNGLMULTITEXCOORD4SARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord4sARB"); | ||
641 | if (NULL == GLH_EXT_NAME(glMultiTexCoord4sARB)) | ||
642 | return FALSE; | ||
643 | GLH_EXT_NAME(glMultiTexCoord4svARB) = (PFNGLMULTITEXCOORD4SVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultiTexCoord4svARB"); | ||
644 | if (NULL == GLH_EXT_NAME(glMultiTexCoord4svARB)) | ||
645 | return FALSE; | ||
646 | GLH_EXT_NAME(glActiveTextureARB) = (PFNGLACTIVETEXTUREARBPROC)GLH_EXT_GET_PROC_ADDRESS("glActiveTextureARB"); | ||
647 | if (NULL == GLH_EXT_NAME(glActiveTextureARB)) | ||
648 | return FALSE; | ||
649 | GLH_EXT_NAME(glClientActiveTextureARB) = (PFNGLCLIENTACTIVETEXTUREARBPROC)GLH_EXT_GET_PROC_ADDRESS("glClientActiveTextureARB"); | ||
650 | if (NULL == GLH_EXT_NAME(glClientActiveTextureARB)) | ||
651 | return FALSE; | ||
652 | #endif | ||
653 | |||
654 | #ifdef GL_ARB_texture_border_clamp | ||
655 | } else if (0 == strcmp(extension, "GL_ARB_texture_border_clamp")) { | ||
656 | #endif | ||
657 | |||
658 | #ifdef GL_ARB_texture_compression | ||
659 | } else if (0 == strcmp(extension, "GL_ARB_texture_compression")) { | ||
660 | GLH_EXT_NAME(glCompressedTexImage3DARB) = (PFNGLCOMPRESSEDTEXIMAGE3DARBPROC)GLH_EXT_GET_PROC_ADDRESS("glCompressedTexImage3DARB"); | ||
661 | if (NULL == GLH_EXT_NAME(glCompressedTexImage3DARB)) | ||
662 | return FALSE; | ||
663 | GLH_EXT_NAME(glCompressedTexImage2DARB) = (PFNGLCOMPRESSEDTEXIMAGE2DARBPROC)GLH_EXT_GET_PROC_ADDRESS("glCompressedTexImage2DARB"); | ||
664 | if (NULL == GLH_EXT_NAME(glCompressedTexImage2DARB)) | ||
665 | return FALSE; | ||
666 | GLH_EXT_NAME(glCompressedTexImage1DARB) = (PFNGLCOMPRESSEDTEXIMAGE1DARBPROC)GLH_EXT_GET_PROC_ADDRESS("glCompressedTexImage1DARB"); | ||
667 | if (NULL == GLH_EXT_NAME(glCompressedTexImage1DARB)) | ||
668 | return FALSE; | ||
669 | GLH_EXT_NAME(glCompressedTexSubImage3DARB) = (PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC)GLH_EXT_GET_PROC_ADDRESS("glCompressedTexSubImage3DARB"); | ||
670 | if (NULL == GLH_EXT_NAME(glCompressedTexSubImage3DARB)) | ||
671 | return FALSE; | ||
672 | GLH_EXT_NAME(glCompressedTexSubImage2DARB) = (PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC)GLH_EXT_GET_PROC_ADDRESS("glCompressedTexSubImage2DARB"); | ||
673 | if (NULL == GLH_EXT_NAME(glCompressedTexSubImage2DARB)) | ||
674 | return FALSE; | ||
675 | GLH_EXT_NAME(glCompressedTexSubImage1DARB) = (PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC)GLH_EXT_GET_PROC_ADDRESS("glCompressedTexSubImage1DARB"); | ||
676 | if (NULL == GLH_EXT_NAME(glCompressedTexSubImage1DARB)) | ||
677 | return FALSE; | ||
678 | GLH_EXT_NAME(glGetCompressedTexImageARB) = (PFNGLGETCOMPRESSEDTEXIMAGEARBPROC)GLH_EXT_GET_PROC_ADDRESS("glGetCompressedTexImageARB"); | ||
679 | if (NULL == GLH_EXT_NAME(glGetCompressedTexImageARB)) | ||
680 | return FALSE; | ||
681 | #endif | ||
682 | |||
683 | #ifdef GL_ARB_texture_cube_map | ||
684 | } else if (0 == strcmp(extension, "GL_ARB_texture_cube_map")) { | ||
685 | #endif | ||
686 | |||
687 | #ifdef GL_ARB_transpose_matrix | ||
688 | } else if (0 == strcmp(extension, "GL_ARB_transpose_matrix")) { | ||
689 | GLH_EXT_NAME(glLoadTransposeMatrixfARB) = (PFNGLLOADTRANSPOSEMATRIXFARBPROC)GLH_EXT_GET_PROC_ADDRESS("glLoadTransposeMatrixfARB"); | ||
690 | if (NULL == GLH_EXT_NAME(glLoadTransposeMatrixfARB)) | ||
691 | return FALSE; | ||
692 | GLH_EXT_NAME(glLoadTransposeMatrixdARB) = (PFNGLLOADTRANSPOSEMATRIXDARBPROC)GLH_EXT_GET_PROC_ADDRESS("glLoadTransposeMatrixdARB"); | ||
693 | if (NULL == GLH_EXT_NAME(glLoadTransposeMatrixdARB)) | ||
694 | return FALSE; | ||
695 | GLH_EXT_NAME(glMultTransposeMatrixfARB) = (PFNGLMULTTRANSPOSEMATRIXFARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultTransposeMatrixfARB"); | ||
696 | if (NULL == GLH_EXT_NAME(glMultTransposeMatrixfARB)) | ||
697 | return FALSE; | ||
698 | GLH_EXT_NAME(glMultTransposeMatrixdARB) = (PFNGLMULTTRANSPOSEMATRIXDARBPROC)GLH_EXT_GET_PROC_ADDRESS("glMultTransposeMatrixdARB"); | ||
699 | if (NULL == GLH_EXT_NAME(glMultTransposeMatrixdARB)) | ||
700 | return FALSE; | ||
701 | #endif | ||
702 | |||
703 | #ifdef GL_ARB_vertex_program | ||
704 | } else if (0 == strcmp(extension, "GL_ARB_vertex_program")) { | ||
705 | GLH_EXT_NAME(glVertexAttrib1sARB) = (PFNGLVERTEXATTRIB1SARBPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib1sARB"); | ||
706 | if (NULL == GLH_EXT_NAME(glVertexAttrib1sARB)) | ||
707 | return GL_FALSE; | ||
708 | GLH_EXT_NAME(glVertexAttrib1fARB) = (PFNGLVERTEXATTRIB1FARBPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib1fARB"); | ||
709 | if (NULL == GLH_EXT_NAME(glVertexAttrib1fARB)) | ||
710 | return GL_FALSE; | ||
711 | GLH_EXT_NAME(glVertexAttrib1dARB) = (PFNGLVERTEXATTRIB1DARBPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib1dARB"); | ||
712 | if (NULL == GLH_EXT_NAME(glVertexAttrib1dARB)) | ||
713 | return GL_FALSE; | ||
714 | GLH_EXT_NAME(glVertexAttrib2sARB) = (PFNGLVERTEXATTRIB2SARBPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib2sARB"); | ||
715 | if (NULL == GLH_EXT_NAME(glVertexAttrib2sARB)) | ||
716 | return GL_FALSE; | ||
717 | GLH_EXT_NAME(glVertexAttrib2fARB) = (PFNGLVERTEXATTRIB2FARBPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib2fARB"); | ||
718 | if (NULL == GLH_EXT_NAME(glVertexAttrib2fARB)) | ||
719 | return GL_FALSE; | ||
720 | GLH_EXT_NAME(glVertexAttrib2dARB) = (PFNGLVERTEXATTRIB2DARBPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib2dARB"); | ||
721 | if (NULL == GLH_EXT_NAME(glVertexAttrib2dARB)) | ||
722 | return GL_FALSE; | ||
723 | GLH_EXT_NAME(glVertexAttrib3sARB) = (PFNGLVERTEXATTRIB3SARBPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib3sARB"); | ||
724 | if (NULL == GLH_EXT_NAME(glVertexAttrib3sARB)) | ||
725 | return GL_FALSE; | ||
726 | GLH_EXT_NAME(glVertexAttrib3fARB) = (PFNGLVERTEXATTRIB3FARBPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib3fARB"); | ||
727 | if (NULL == GLH_EXT_NAME(glVertexAttrib3fARB)) | ||
728 | return GL_FALSE; | ||
729 | GLH_EXT_NAME(glVertexAttrib3dARB) = (PFNGLVERTEXATTRIB3DARBPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib3dARB"); | ||
730 | if (NULL == GLH_EXT_NAME(glVertexAttrib3dARB)) | ||
731 | return GL_FALSE; | ||
732 | GLH_EXT_NAME(glVertexAttrib4sARB) = (PFNGLVERTEXATTRIB4SARBPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib4sARB"); | ||
733 | if (NULL == GLH_EXT_NAME(glVertexAttrib4sARB)) | ||
734 | return GL_FALSE; | ||
735 | GLH_EXT_NAME(glVertexAttrib4fARB) = (PFNGLVERTEXATTRIB4FARBPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib4fARB"); | ||
736 | if (NULL == GLH_EXT_NAME(glVertexAttrib4fARB)) | ||
737 | return GL_FALSE; | ||
738 | GLH_EXT_NAME(glVertexAttrib4dARB) = (PFNGLVERTEXATTRIB4DARBPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib4dARB"); | ||
739 | if (NULL == GLH_EXT_NAME(glVertexAttrib4dARB)) | ||
740 | return GL_FALSE; | ||
741 | GLH_EXT_NAME(glVertexAttrib4NubARB) = (PFNGLVERTEXATTRIB4NUBARBPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib4NubARB"); | ||
742 | if (NULL == GLH_EXT_NAME(glVertexAttrib4NubARB)) | ||
743 | return GL_FALSE; | ||
744 | GLH_EXT_NAME(glVertexAttrib1svARB) = (PFNGLVERTEXATTRIB1SVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib1svARB"); | ||
745 | if (NULL == GLH_EXT_NAME(glVertexAttrib1svARB)) | ||
746 | return GL_FALSE; | ||
747 | GLH_EXT_NAME(glVertexAttrib1fvARB) = (PFNGLVERTEXATTRIB1FVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib1fvARB"); | ||
748 | if (NULL == GLH_EXT_NAME(glVertexAttrib1fvARB)) | ||
749 | return GL_FALSE; | ||
750 | GLH_EXT_NAME(glVertexAttrib1dvARB) = (PFNGLVERTEXATTRIB1DVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib1dvARB"); | ||
751 | if (NULL == GLH_EXT_NAME(glVertexAttrib1dvARB)) | ||
752 | return GL_FALSE; | ||
753 | GLH_EXT_NAME(glVertexAttrib2svARB) = (PFNGLVERTEXATTRIB2SVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib2svARB"); | ||
754 | if (NULL == GLH_EXT_NAME(glVertexAttrib2svARB)) | ||
755 | return GL_FALSE; | ||
756 | GLH_EXT_NAME(glVertexAttrib2fvARB) = (PFNGLVERTEXATTRIB2FVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib2fvARB"); | ||
757 | if (NULL == GLH_EXT_NAME(glVertexAttrib2fvARB)) | ||
758 | return GL_FALSE; | ||
759 | GLH_EXT_NAME(glVertexAttrib2dvARB) = (PFNGLVERTEXATTRIB2DVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib2dvARB"); | ||
760 | if (NULL == GLH_EXT_NAME(glVertexAttrib2dvARB)) | ||
761 | return GL_FALSE; | ||
762 | GLH_EXT_NAME(glVertexAttrib3svARB) = (PFNGLVERTEXATTRIB3SVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib3svARB"); | ||
763 | if (NULL == GLH_EXT_NAME(glVertexAttrib3svARB)) | ||
764 | return GL_FALSE; | ||
765 | GLH_EXT_NAME(glVertexAttrib3fvARB) = (PFNGLVERTEXATTRIB3FVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib3fvARB"); | ||
766 | if (NULL == GLH_EXT_NAME(glVertexAttrib3fvARB)) | ||
767 | return GL_FALSE; | ||
768 | GLH_EXT_NAME(glVertexAttrib3dvARB) = (PFNGLVERTEXATTRIB3DVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib3dvARB"); | ||
769 | if (NULL == GLH_EXT_NAME(glVertexAttrib3dvARB)) | ||
770 | return GL_FALSE; | ||
771 | GLH_EXT_NAME(glVertexAttrib4bvARB) = (PFNGLVERTEXATTRIB4BVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib4bvARB"); | ||
772 | if (NULL == GLH_EXT_NAME(glVertexAttrib4bvARB)) | ||
773 | return GL_FALSE; | ||
774 | GLH_EXT_NAME(glVertexAttrib4svARB) = (PFNGLVERTEXATTRIB4SVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib4svARB"); | ||
775 | if (NULL == GLH_EXT_NAME(glVertexAttrib4svARB)) | ||
776 | return GL_FALSE; | ||
777 | GLH_EXT_NAME(glVertexAttrib4ivARB) = (PFNGLVERTEXATTRIB4IVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib4ivARB"); | ||
778 | if (NULL == GLH_EXT_NAME(glVertexAttrib4ivARB)) | ||
779 | return GL_FALSE; | ||
780 | GLH_EXT_NAME(glVertexAttrib4ubvARB) = (PFNGLVERTEXATTRIB4UBVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib4ubvARB"); | ||
781 | if (NULL == GLH_EXT_NAME(glVertexAttrib4ubvARB)) | ||
782 | return GL_FALSE; | ||
783 | GLH_EXT_NAME(glVertexAttrib4usvARB) = (PFNGLVERTEXATTRIB4USVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib4usvARB"); | ||
784 | if (NULL == GLH_EXT_NAME(glVertexAttrib4usvARB)) | ||
785 | return GL_FALSE; | ||
786 | GLH_EXT_NAME(glVertexAttrib4uivARB) = (PFNGLVERTEXATTRIB4UIVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib4uivARB"); | ||
787 | if (NULL == GLH_EXT_NAME(glVertexAttrib4uivARB)) | ||
788 | return GL_FALSE; | ||
789 | GLH_EXT_NAME(glVertexAttrib4fvARB) = (PFNGLVERTEXATTRIB4FVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib4fvARB"); | ||
790 | if (NULL == GLH_EXT_NAME(glVertexAttrib4fvARB)) | ||
791 | return GL_FALSE; | ||
792 | GLH_EXT_NAME(glVertexAttrib4dvARB) = (PFNGLVERTEXATTRIB4DVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib4dvARB"); | ||
793 | if (NULL == GLH_EXT_NAME(glVertexAttrib4dvARB)) | ||
794 | return GL_FALSE; | ||
795 | GLH_EXT_NAME(glVertexAttrib4NbvARB) = (PFNGLVERTEXATTRIB4NBVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib4NbvARB"); | ||
796 | if (NULL == GLH_EXT_NAME(glVertexAttrib4NbvARB)) | ||
797 | return GL_FALSE; | ||
798 | GLH_EXT_NAME(glVertexAttrib4NsvARB) = (PFNGLVERTEXATTRIB4NSVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib4NsvARB"); | ||
799 | if (NULL == GLH_EXT_NAME(glVertexAttrib4NsvARB)) | ||
800 | return GL_FALSE; | ||
801 | GLH_EXT_NAME(glVertexAttrib4NivARB) = (PFNGLVERTEXATTRIB4NIVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib4NivARB"); | ||
802 | if (NULL == GLH_EXT_NAME(glVertexAttrib4NivARB)) | ||
803 | return GL_FALSE; | ||
804 | GLH_EXT_NAME(glVertexAttrib4NubvARB) = (PFNGLVERTEXATTRIB4NUBVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib4NubvARB"); | ||
805 | if (NULL == GLH_EXT_NAME(glVertexAttrib4NubvARB)) | ||
806 | return GL_FALSE; | ||
807 | GLH_EXT_NAME(glVertexAttrib4NusvARB) = (PFNGLVERTEXATTRIB4NUSVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib4NusvARB"); | ||
808 | if (NULL == GLH_EXT_NAME(glVertexAttrib4NusvARB)) | ||
809 | return GL_FALSE; | ||
810 | GLH_EXT_NAME(glVertexAttrib4NuivARB) = (PFNGLVERTEXATTRIB4NUIVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib4NuivARB"); | ||
811 | if (NULL == GLH_EXT_NAME(glVertexAttrib4NuivARB)) | ||
812 | return GL_FALSE; | ||
813 | GLH_EXT_NAME(glVertexAttribPointerARB) = (PFNGLVERTEXATTRIBPOINTERARBPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttribPointerARB"); | ||
814 | if (NULL == GLH_EXT_NAME(glVertexAttribPointerARB)) | ||
815 | return GL_FALSE; | ||
816 | GLH_EXT_NAME(glEnableVertexAttribArrayARB) = (PFNGLENABLEVERTEXATTRIBARRAYARBPROC)GLH_EXT_GET_PROC_ADDRESS("glEnableVertexAttribArrayARB"); | ||
817 | if (NULL == GLH_EXT_NAME(glEnableVertexAttribArrayARB)) | ||
818 | return GL_FALSE; | ||
819 | GLH_EXT_NAME(glDisableVertexAttribArrayARB) = (PFNGLDISABLEVERTEXATTRIBARRAYARBPROC)GLH_EXT_GET_PROC_ADDRESS("glDisableVertexAttribArrayARB"); | ||
820 | if (NULL == GLH_EXT_NAME(glDisableVertexAttribArrayARB)) | ||
821 | return GL_FALSE; | ||
822 | GLH_EXT_NAME(glProgramStringARB) = (PFNGLPROGRAMSTRINGARBPROC)GLH_EXT_GET_PROC_ADDRESS("glProgramStringARB"); | ||
823 | if (NULL == GLH_EXT_NAME(glProgramStringARB)) | ||
824 | return GL_FALSE; | ||
825 | GLH_EXT_NAME(glBindProgramARB) = (PFNGLBINDPROGRAMARBPROC)GLH_EXT_GET_PROC_ADDRESS("glBindProgramARB"); | ||
826 | if (NULL == GLH_EXT_NAME(glBindProgramARB)) | ||
827 | return GL_FALSE; | ||
828 | GLH_EXT_NAME(glDeleteProgramsARB) = (PFNGLDELETEPROGRAMSARBPROC)GLH_EXT_GET_PROC_ADDRESS("glDeleteProgramsARB"); | ||
829 | if (NULL == GLH_EXT_NAME(glDeleteProgramsARB)) | ||
830 | return GL_FALSE; | ||
831 | GLH_EXT_NAME(glGenProgramsARB) = (PFNGLGENPROGRAMSARBPROC)GLH_EXT_GET_PROC_ADDRESS("glGenProgramsARB"); | ||
832 | if (NULL == GLH_EXT_NAME(glGenProgramsARB)) | ||
833 | return GL_FALSE; | ||
834 | GLH_EXT_NAME(glProgramEnvParameter4dARB) = (PFNGLPROGRAMENVPARAMETER4DARBPROC)GLH_EXT_GET_PROC_ADDRESS("glProgramEnvParameter4dARB"); | ||
835 | if (NULL == GLH_EXT_NAME(glProgramEnvParameter4dARB)) | ||
836 | return GL_FALSE; | ||
837 | GLH_EXT_NAME(glProgramEnvParameter4dvARB) = (PFNGLPROGRAMENVPARAMETER4DVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glProgramEnvParameter4dvARB"); | ||
838 | if (NULL == GLH_EXT_NAME(glProgramEnvParameter4dvARB)) | ||
839 | return GL_FALSE; | ||
840 | GLH_EXT_NAME(glProgramEnvParameter4fARB) = (PFNGLPROGRAMENVPARAMETER4FARBPROC)GLH_EXT_GET_PROC_ADDRESS("glProgramEnvParameter4fARB"); | ||
841 | if (NULL == GLH_EXT_NAME(glProgramEnvParameter4fARB)) | ||
842 | return GL_FALSE; | ||
843 | GLH_EXT_NAME(glProgramEnvParameter4fvARB) = (PFNGLPROGRAMENVPARAMETER4FVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glProgramEnvParameter4fvARB"); | ||
844 | if (NULL == GLH_EXT_NAME(glProgramEnvParameter4fvARB)) | ||
845 | return GL_FALSE; | ||
846 | GLH_EXT_NAME(glProgramLocalParameter4dARB) = (PFNGLPROGRAMLOCALPARAMETER4DARBPROC)GLH_EXT_GET_PROC_ADDRESS("glProgramLocalParameter4dARB"); | ||
847 | if (NULL == GLH_EXT_NAME(glProgramLocalParameter4dARB)) | ||
848 | return GL_FALSE; | ||
849 | GLH_EXT_NAME(glProgramLocalParameter4dvARB) = (PFNGLPROGRAMLOCALPARAMETER4DVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glProgramLocalParameter4dvARB"); | ||
850 | if (NULL == GLH_EXT_NAME(glProgramLocalParameter4dvARB)) | ||
851 | return GL_FALSE; | ||
852 | GLH_EXT_NAME(glProgramLocalParameter4fARB) = (PFNGLPROGRAMLOCALPARAMETER4FARBPROC)GLH_EXT_GET_PROC_ADDRESS("glProgramLocalParameter4fARB"); | ||
853 | if (NULL == GLH_EXT_NAME(glProgramLocalParameter4fARB)) | ||
854 | return GL_FALSE; | ||
855 | GLH_EXT_NAME(glProgramLocalParameter4fvARB) = (PFNGLPROGRAMLOCALPARAMETER4FVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glProgramLocalParameter4fvARB"); | ||
856 | if (NULL == GLH_EXT_NAME(glProgramLocalParameter4fvARB)) | ||
857 | return GL_FALSE; | ||
858 | GLH_EXT_NAME(glGetProgramEnvParameterdvARB) = (PFNGLGETPROGRAMENVPARAMETERDVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glGetProgramEnvParameterdvARB"); | ||
859 | if (NULL == GLH_EXT_NAME(glGetProgramEnvParameterdvARB)) | ||
860 | return GL_FALSE; | ||
861 | GLH_EXT_NAME(glGetProgramEnvParameterfvARB) = (PFNGLGETPROGRAMENVPARAMETERFVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glGetProgramEnvParameterfvARB"); | ||
862 | if (NULL == GLH_EXT_NAME(glGetProgramEnvParameterfvARB)) | ||
863 | return GL_FALSE; | ||
864 | GLH_EXT_NAME(glGetProgramLocalParameterdvARB) = (PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glGetProgramLocalParameterdvARB"); | ||
865 | if (NULL == GLH_EXT_NAME(glGetProgramLocalParameterdvARB)) | ||
866 | return GL_FALSE; | ||
867 | GLH_EXT_NAME(glGetProgramLocalParameterfvARB) = (PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glGetProgramLocalParameterfvARB"); | ||
868 | if (NULL == GLH_EXT_NAME(glGetProgramLocalParameterfvARB)) | ||
869 | return GL_FALSE; | ||
870 | GLH_EXT_NAME(glGetProgramivARB) = (PFNGLGETPROGRAMIVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glGetProgramivARB"); | ||
871 | if (NULL == GLH_EXT_NAME(glGetProgramivARB)) | ||
872 | return GL_FALSE; | ||
873 | GLH_EXT_NAME(glGetProgramStringARB) = (PFNGLGETPROGRAMSTRINGARBPROC)GLH_EXT_GET_PROC_ADDRESS("glGetProgramStringARB"); | ||
874 | if (NULL == GLH_EXT_NAME(glGetProgramStringARB)) | ||
875 | return GL_FALSE; | ||
876 | GLH_EXT_NAME(glGetVertexAttribdvARB) = (PFNGLGETVERTEXATTRIBDVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glGetVertexAttribdvARB"); | ||
877 | if (NULL == GLH_EXT_NAME(glGetVertexAttribdvARB)) | ||
878 | return GL_FALSE; | ||
879 | GLH_EXT_NAME(glGetVertexAttribfvARB) = (PFNGLGETVERTEXATTRIBFVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glGetVertexAttribfvARB"); | ||
880 | if (NULL == GLH_EXT_NAME(glGetVertexAttribfvARB)) | ||
881 | return GL_FALSE; | ||
882 | GLH_EXT_NAME(glGetVertexAttribivARB) = (PFNGLGETVERTEXATTRIBIVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glGetVertexAttribivARB"); | ||
883 | if (NULL == GLH_EXT_NAME(glGetVertexAttribivARB)) | ||
884 | return GL_FALSE; | ||
885 | GLH_EXT_NAME(glGetVertexAttribPointervARB) = (PFNGLGETVERTEXATTRIBPOINTERVARBPROC)GLH_EXT_GET_PROC_ADDRESS("glGetVertexAttribPointervARB"); | ||
886 | if (NULL == GLH_EXT_NAME(glGetVertexAttribPointervARB)) | ||
887 | return GL_FALSE; | ||
888 | GLH_EXT_NAME(glIsProgramARB) = (PFNGLISPROGRAMARBPROC)GLH_EXT_GET_PROC_ADDRESS("glIsProgramARB"); | ||
889 | if (NULL == GLH_EXT_NAME(glIsProgramARB)) | ||
890 | return GL_FALSE; | ||
891 | #endif | ||
892 | |||
893 | #ifdef GL_EXT_abgr | ||
894 | } else if (0 == strcmp(extension, "GL_EXT_abgr")) { | ||
895 | #endif | ||
896 | |||
897 | #ifdef GL_EXT_bgra | ||
898 | } else if (0 == strcmp(extension, "GL_EXT_bgra")) { | ||
899 | #endif | ||
900 | |||
901 | #ifdef GL_EXT_blend_color | ||
902 | } else if (0 == strcmp(extension, "GL_EXT_blend_color")) { | ||
903 | GLH_EXT_NAME(glBlendColorEXT) = (PFNGLBLENDCOLOREXTPROC)GLH_EXT_GET_PROC_ADDRESS("glBlendColorEXT"); | ||
904 | if (NULL == GLH_EXT_NAME(glBlendColorEXT)) | ||
905 | return FALSE; | ||
906 | #endif | ||
907 | |||
908 | #ifdef GL_EXT_blend_minmax | ||
909 | } else if (0 == strcmp(extension, "GL_EXT_blend_minmax")) { | ||
910 | GLH_EXT_NAME(glBlendEquationEXT) = (PFNGLBLENDEQUATIONEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glBlendEquationEXT"); | ||
911 | if (NULL == GLH_EXT_NAME(glBlendEquationEXT)) | ||
912 | return FALSE; | ||
913 | #endif | ||
914 | |||
915 | #ifdef GL_EXT_blend_subtract | ||
916 | } else if (0 == strcmp(extension, "GL_EXT_blend_subtract")) { | ||
917 | #endif | ||
918 | |||
919 | #ifdef GL_EXT_compiled_vertex_array | ||
920 | } else if (0 == strcmp(extension, "GL_EXT_compiled_vertex_array")) { | ||
921 | GLH_EXT_NAME(glLockArraysEXT) = (PFNGLLOCKARRAYSEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glLockArraysEXT"); | ||
922 | if (NULL == GLH_EXT_NAME(glLockArraysEXT)) | ||
923 | return FALSE; | ||
924 | GLH_EXT_NAME(glUnlockArraysEXT) = (PFNGLUNLOCKARRAYSEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glUnlockArraysEXT"); | ||
925 | if (NULL == GLH_EXT_NAME(glUnlockArraysEXT)) | ||
926 | return FALSE; | ||
927 | #endif | ||
928 | |||
929 | #ifdef GL_EXT_fog_coord | ||
930 | } else if (0 == strcmp(extension, "GL_EXT_fog_coord")) { | ||
931 | GLH_EXT_NAME(glFogCoorddEXT) = (PFNGLFOGCOORDDEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glFogCoorddEXT"); | ||
932 | if (NULL == GLH_EXT_NAME(glFogCoorddEXT)) | ||
933 | return FALSE; | ||
934 | GLH_EXT_NAME(glFogCoorddvEXT) = (PFNGLFOGCOORDDVEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glFogCoorddvEXT"); | ||
935 | if (NULL == GLH_EXT_NAME(glFogCoorddvEXT)) | ||
936 | return FALSE; | ||
937 | GLH_EXT_NAME(glFogCoordfEXT) = (PFNGLFOGCOORDFEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glFogCoordfEXT"); | ||
938 | if (NULL == GLH_EXT_NAME(glFogCoordfEXT)) | ||
939 | return FALSE; | ||
940 | GLH_EXT_NAME(glFogCoordfvEXT) = (PFNGLFOGCOORDFVEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glFogCoordfvEXT"); | ||
941 | if (NULL == GLH_EXT_NAME(glFogCoordfvEXT)) | ||
942 | return FALSE; | ||
943 | GLH_EXT_NAME(glFogCoordPointerEXT) = (PFNGLFOGCOORDPOINTEREXTPROC)GLH_EXT_GET_PROC_ADDRESS("glFogCoordPointerEXT"); | ||
944 | if (NULL == GLH_EXT_NAME(glFogCoordPointerEXT)) | ||
945 | return FALSE; | ||
946 | #endif | ||
947 | |||
948 | #ifdef GL_EXT_light_max_exponent | ||
949 | } else if (0 == strcmp(extension, "GL_EXT_light_max_exponent")) { | ||
950 | #endif | ||
951 | |||
952 | #ifdef GL_EXT_packed_pixels | ||
953 | } else if (0 == strcmp(extension, "GL_EXT_packed_pixels")) { | ||
954 | #endif | ||
955 | |||
956 | #ifdef GL_EXT_paletted_texture | ||
957 | } else if (0 == strcmp(extension, "GL_EXT_paletted_texture")) { | ||
958 | GLH_EXT_NAME(glColorSubTableEXT) = (PFNGLCOLORSUBTABLEEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glColorSubTableEXT"); | ||
959 | if (NULL == GLH_EXT_NAME(glColorSubTableEXT)) | ||
960 | return FALSE; | ||
961 | GLH_EXT_NAME(glColorTableEXT) = (PFNGLCOLORTABLEEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glColorTableEXT"); | ||
962 | if (NULL == GLH_EXT_NAME(glColorTableEXT)) | ||
963 | return FALSE; | ||
964 | GLH_EXT_NAME(glGetColorTableEXT) = (PFNGLGETCOLORTABLEEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glGetColorTableEXT"); | ||
965 | if (NULL == GLH_EXT_NAME(glGetColorTableEXT)) | ||
966 | return FALSE; | ||
967 | GLH_EXT_NAME(glGetColorTableParameterfvEXT) = (PFNGLGETCOLORTABLEPARAMETERFVEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glGetColorTableParameterfvEXT"); | ||
968 | if (NULL == GLH_EXT_NAME(glGetColorTableParameterfvEXT)) | ||
969 | return FALSE; | ||
970 | GLH_EXT_NAME(glGetColorTableParameterivEXT) = (PFNGLGETCOLORTABLEPARAMETERIVEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glGetColorTableParameterivEXT"); | ||
971 | if (NULL == GLH_EXT_NAME(glGetColorTableParameterivEXT)) | ||
972 | return FALSE; | ||
973 | #endif | ||
974 | |||
975 | #ifdef GL_EXT_point_parameters | ||
976 | } else if (0 == strcmp(extension, "GL_EXT_point_parameters")) { | ||
977 | GLH_EXT_NAME(glPointParameterfEXT) = (PFNGLPOINTPARAMETERFEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glPointParameterfEXT"); | ||
978 | if (NULL == GLH_EXT_NAME(glPointParameterfEXT)) | ||
979 | return FALSE; | ||
980 | GLH_EXT_NAME(glPointParameterfvEXT) = (PFNGLPOINTPARAMETERFVEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glPointParameterfvEXT"); | ||
981 | if (NULL == GLH_EXT_NAME(glPointParameterfvEXT)) | ||
982 | return FALSE; | ||
983 | #endif | ||
984 | |||
985 | #ifdef GL_EXT_rescale_normal | ||
986 | } else if (0 == strcmp(extension, "GL_EXT_rescale_normal")) { | ||
987 | #endif | ||
988 | |||
989 | #ifdef GL_EXT_secondary_color | ||
990 | } else if (0 == strcmp(extension, "GL_EXT_secondary_color")) { | ||
991 | GLH_EXT_NAME(glSecondaryColor3bEXT) = (PFNGLSECONDARYCOLOR3BEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glSecondaryColor3bEXT"); | ||
992 | if (NULL == GLH_EXT_NAME(glSecondaryColor3bEXT)) | ||
993 | return FALSE; | ||
994 | GLH_EXT_NAME(glSecondaryColor3bvEXT) = (PFNGLSECONDARYCOLOR3BVEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glSecondaryColor3bvEXT"); | ||
995 | if (NULL == GLH_EXT_NAME(glSecondaryColor3bvEXT)) | ||
996 | return FALSE; | ||
997 | GLH_EXT_NAME(glSecondaryColor3dEXT) = (PFNGLSECONDARYCOLOR3DEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glSecondaryColor3dEXT"); | ||
998 | if (NULL == GLH_EXT_NAME(glSecondaryColor3dEXT)) | ||
999 | return FALSE; | ||
1000 | GLH_EXT_NAME(glSecondaryColor3dvEXT) = (PFNGLSECONDARYCOLOR3DVEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glSecondaryColor3dvEXT"); | ||
1001 | if (NULL == GLH_EXT_NAME(glSecondaryColor3dvEXT)) | ||
1002 | return FALSE; | ||
1003 | GLH_EXT_NAME(glSecondaryColor3fEXT) = (PFNGLSECONDARYCOLOR3FEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glSecondaryColor3fEXT"); | ||
1004 | if (NULL == GLH_EXT_NAME(glSecondaryColor3fEXT)) | ||
1005 | return FALSE; | ||
1006 | GLH_EXT_NAME(glSecondaryColor3fvEXT) = (PFNGLSECONDARYCOLOR3FVEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glSecondaryColor3fvEXT"); | ||
1007 | if (NULL == GLH_EXT_NAME(glSecondaryColor3fvEXT)) | ||
1008 | return FALSE; | ||
1009 | GLH_EXT_NAME(glSecondaryColor3iEXT) = (PFNGLSECONDARYCOLOR3IEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glSecondaryColor3iEXT"); | ||
1010 | if (NULL == GLH_EXT_NAME(glSecondaryColor3iEXT)) | ||
1011 | return FALSE; | ||
1012 | GLH_EXT_NAME(glSecondaryColor3ivEXT) = (PFNGLSECONDARYCOLOR3IVEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glSecondaryColor3ivEXT"); | ||
1013 | if (NULL == GLH_EXT_NAME(glSecondaryColor3ivEXT)) | ||
1014 | return FALSE; | ||
1015 | GLH_EXT_NAME(glSecondaryColor3sEXT) = (PFNGLSECONDARYCOLOR3SEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glSecondaryColor3sEXT"); | ||
1016 | if (NULL == GLH_EXT_NAME(glSecondaryColor3sEXT)) | ||
1017 | return FALSE; | ||
1018 | GLH_EXT_NAME(glSecondaryColor3svEXT) = (PFNGLSECONDARYCOLOR3SVEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glSecondaryColor3svEXT"); | ||
1019 | if (NULL == GLH_EXT_NAME(glSecondaryColor3svEXT)) | ||
1020 | return FALSE; | ||
1021 | GLH_EXT_NAME(glSecondaryColor3ubEXT) = (PFNGLSECONDARYCOLOR3UBEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glSecondaryColor3ubEXT"); | ||
1022 | if (NULL == GLH_EXT_NAME(glSecondaryColor3ubEXT)) | ||
1023 | return FALSE; | ||
1024 | GLH_EXT_NAME(glSecondaryColor3ubvEXT) = (PFNGLSECONDARYCOLOR3UBVEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glSecondaryColor3ubvEXT"); | ||
1025 | if (NULL == GLH_EXT_NAME(glSecondaryColor3ubvEXT)) | ||
1026 | return FALSE; | ||
1027 | GLH_EXT_NAME(glSecondaryColor3uiEXT) = (PFNGLSECONDARYCOLOR3UIEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glSecondaryColor3uiEXT"); | ||
1028 | if (NULL == GLH_EXT_NAME(glSecondaryColor3uiEXT)) | ||
1029 | return FALSE; | ||
1030 | GLH_EXT_NAME(glSecondaryColor3uivEXT) = (PFNGLSECONDARYCOLOR3UIVEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glSecondaryColor3uivEXT"); | ||
1031 | if (NULL == GLH_EXT_NAME(glSecondaryColor3uivEXT)) | ||
1032 | return FALSE; | ||
1033 | GLH_EXT_NAME(glSecondaryColor3usEXT) = (PFNGLSECONDARYCOLOR3USEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glSecondaryColor3usEXT"); | ||
1034 | if (NULL == GLH_EXT_NAME(glSecondaryColor3usEXT)) | ||
1035 | return FALSE; | ||
1036 | GLH_EXT_NAME(glSecondaryColor3usvEXT) = (PFNGLSECONDARYCOLOR3USVEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glSecondaryColor3usvEXT"); | ||
1037 | if (NULL == GLH_EXT_NAME(glSecondaryColor3usvEXT)) | ||
1038 | return FALSE; | ||
1039 | GLH_EXT_NAME(glSecondaryColorPointerEXT) = (PFNGLSECONDARYCOLORPOINTEREXTPROC)GLH_EXT_GET_PROC_ADDRESS("glSecondaryColorPointerEXT"); | ||
1040 | if (NULL == GLH_EXT_NAME(glSecondaryColorPointerEXT)) | ||
1041 | return FALSE; | ||
1042 | #endif | ||
1043 | |||
1044 | #ifdef GL_EXT_separate_specular_color | ||
1045 | } else if (0 == strcmp(extension, "GL_EXT_separate_specular_color")) { | ||
1046 | #endif | ||
1047 | |||
1048 | #ifdef GL_EXT_shared_texture_palette | ||
1049 | } else if (0 == strcmp(extension, "GL_EXT_shared_texture_palette")) { | ||
1050 | #endif | ||
1051 | |||
1052 | #ifdef GL_EXT_stencil_wrap | ||
1053 | } else if (0 == strcmp(extension, "GL_EXT_stencil_wrap")) { | ||
1054 | #endif | ||
1055 | |||
1056 | #ifdef GL_EXT_texture_compression_s3tc | ||
1057 | } else if (0 == strcmp(extension, "GL_EXT_texture_compression_s3tc")) { | ||
1058 | #endif | ||
1059 | |||
1060 | #ifdef GL_EXT_texture_cube_map | ||
1061 | } else if (0 == strcmp(extension, "GL_EXT_texture_cube_map")) { | ||
1062 | #endif | ||
1063 | |||
1064 | #ifdef GL_EXT_texture_edge_clamp | ||
1065 | } else if (0 == strcmp(extension, "GL_EXT_texture_edge_clamp")) { | ||
1066 | #endif | ||
1067 | |||
1068 | #ifdef GL_EXT_texture_env_add | ||
1069 | } else if (0 == strcmp(extension, "GL_EXT_texture_env_add")) { | ||
1070 | #endif | ||
1071 | |||
1072 | #ifdef GL_EXT_texture_env_combine | ||
1073 | } else if (0 == strcmp(extension, "GL_EXT_texture_env_combine")) { | ||
1074 | #endif | ||
1075 | |||
1076 | #ifdef GL_EXT_texture_filter_anisotropic | ||
1077 | } else if (0 == strcmp(extension, "GL_EXT_texture_filter_anisotropic")) { | ||
1078 | #endif | ||
1079 | |||
1080 | #ifdef GL_EXT_texture_lod_bias | ||
1081 | } else if (0 == strcmp(extension, "GL_EXT_texture_lod_bias")) { | ||
1082 | #endif | ||
1083 | |||
1084 | #ifdef GL_EXT_texture_object | ||
1085 | } else if (0 == strcmp(extension, "GL_EXT_texture_object")) { | ||
1086 | GLH_EXT_NAME(glAreTexturesResidentEXT) = (PFNGLARETEXTURESRESIDENTEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glAreTexturesResidentEXT"); | ||
1087 | if (NULL == GLH_EXT_NAME(glAreTexturesResidentEXT)) | ||
1088 | return FALSE; | ||
1089 | GLH_EXT_NAME(glBindTextureEXT) = (PFNGLBINDTEXTUREEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glBindTextureEXT"); | ||
1090 | if (NULL == GLH_EXT_NAME(glBindTextureEXT)) | ||
1091 | return FALSE; | ||
1092 | GLH_EXT_NAME(glDeleteTexturesEXT) = (PFNGLDELETETEXTURESEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glDeleteTexturesEXT"); | ||
1093 | if (NULL == GLH_EXT_NAME(glDeleteTexturesEXT)) | ||
1094 | return FALSE; | ||
1095 | GLH_EXT_NAME(glGenTexturesEXT) = (PFNGLGENTEXTURESEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glGenTexturesEXT"); | ||
1096 | if (NULL == GLH_EXT_NAME(glGenTexturesEXT)) | ||
1097 | return FALSE; | ||
1098 | GLH_EXT_NAME(glIsTextureEXT) = (PFNGLISTEXTUREEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glIsTextureEXT"); | ||
1099 | if (NULL == GLH_EXT_NAME(glIsTextureEXT)) | ||
1100 | return FALSE; | ||
1101 | GLH_EXT_NAME(glPrioritizeTexturesEXT) = (PFNGLPRIORITIZETEXTURESEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glPrioritizeTexturesEXT"); | ||
1102 | if (NULL == GLH_EXT_NAME(glPrioritizeTexturesEXT)) | ||
1103 | return FALSE; | ||
1104 | #endif | ||
1105 | |||
1106 | #ifdef GL_EXT_texture3D | ||
1107 | } else if (0 == strcmp(extension, "GL_EXT_texture3D")) { | ||
1108 | GLH_EXT_NAME(glTexImage3DEXT) = (PFNGLTEXIMAGE3DEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glTexImage3DEXT"); | ||
1109 | if (NULL == GLH_EXT_NAME(glTexImage3DEXT)) | ||
1110 | return FALSE; | ||
1111 | #endif | ||
1112 | |||
1113 | #ifdef GL_EXT_vertex_array | ||
1114 | } else if (0 == strcmp(extension, "GL_EXT_vertex_array")) { | ||
1115 | GLH_EXT_NAME(glArrayElementEXT) = (PFNGLARRAYELEMENTEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glArrayElementEXT"); | ||
1116 | if (NULL == GLH_EXT_NAME(glArrayElementEXT)) | ||
1117 | return FALSE; | ||
1118 | GLH_EXT_NAME(glColorPointerEXT) = (PFNGLCOLORPOINTEREXTPROC)GLH_EXT_GET_PROC_ADDRESS("glColorPointerEXT"); | ||
1119 | if (NULL == GLH_EXT_NAME(glColorPointerEXT)) | ||
1120 | return FALSE; | ||
1121 | GLH_EXT_NAME(glEdgeFlagPointerEXT) = (PFNGLEDGEFLAGPOINTEREXTPROC)GLH_EXT_GET_PROC_ADDRESS("glEdgeFlagPointerEXT"); | ||
1122 | if (NULL == GLH_EXT_NAME(glEdgeFlagPointerEXT)) | ||
1123 | return FALSE; | ||
1124 | GLH_EXT_NAME(glGetPointervEXT) = (PFNGLGETPOINTERVEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glGetPointervEXT"); | ||
1125 | if (NULL == GLH_EXT_NAME(glGetPointervEXT)) | ||
1126 | return FALSE; | ||
1127 | GLH_EXT_NAME(glIndexPointerEXT) = (PFNGLINDEXPOINTEREXTPROC)GLH_EXT_GET_PROC_ADDRESS("glIndexPointerEXT"); | ||
1128 | if (NULL == GLH_EXT_NAME(glIndexPointerEXT)) | ||
1129 | return FALSE; | ||
1130 | GLH_EXT_NAME(glNormalPointerEXT) = (PFNGLNORMALPOINTEREXTPROC)GLH_EXT_GET_PROC_ADDRESS("glNormalPointerEXT"); | ||
1131 | if (NULL == GLH_EXT_NAME(glNormalPointerEXT)) | ||
1132 | return FALSE; | ||
1133 | GLH_EXT_NAME(glTexCoordPointerEXT) = (PFNGLTEXCOORDPOINTEREXTPROC)GLH_EXT_GET_PROC_ADDRESS("glTexCoordPointerEXT"); | ||
1134 | if (NULL == GLH_EXT_NAME(glTexCoordPointerEXT)) | ||
1135 | return FALSE; | ||
1136 | GLH_EXT_NAME(glVertexPointerEXT) = (PFNGLVERTEXPOINTEREXTPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexPointerEXT"); | ||
1137 | if (NULL == GLH_EXT_NAME(glVertexPointerEXT)) | ||
1138 | return FALSE; | ||
1139 | GLH_EXT_NAME(glDrawArraysEXT) = (PFNGLDRAWARRAYSEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glDrawArraysEXT"); | ||
1140 | if (NULL == GLH_EXT_NAME(glDrawArraysEXT)) | ||
1141 | return FALSE; | ||
1142 | #endif | ||
1143 | |||
1144 | #ifdef GL_EXT_vertex_weighting | ||
1145 | } else if (0 == strcmp(extension, "GL_EXT_vertex_weighting")) { | ||
1146 | GLH_EXT_NAME(glVertexWeightfEXT) = (PFNGLVERTEXWEIGHTFEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexWeightfEXT"); | ||
1147 | if (NULL == GLH_EXT_NAME(glVertexWeightfEXT)) | ||
1148 | return FALSE; | ||
1149 | GLH_EXT_NAME(glVertexWeightfvEXT) = (PFNGLVERTEXWEIGHTFVEXTPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexWeightfvEXT"); | ||
1150 | if (NULL == GLH_EXT_NAME(glVertexWeightfvEXT)) | ||
1151 | return FALSE; | ||
1152 | GLH_EXT_NAME(glVertexWeightPointerEXT) = (PFNGLVERTEXWEIGHTPOINTEREXTPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexWeightPointerEXT"); | ||
1153 | if (NULL == GLH_EXT_NAME(glVertexWeightPointerEXT)) | ||
1154 | return FALSE; | ||
1155 | #endif | ||
1156 | |||
1157 | #ifdef GL_NV_blend_square | ||
1158 | } else if (0 == strcmp(extension, "GL_NV_blend_square")) { | ||
1159 | #endif | ||
1160 | |||
1161 | #ifdef GL_NV_evaluators | ||
1162 | } else if (0 == strcmp(extension, "GL_NV_evaluators")) { | ||
1163 | GLH_EXT_NAME(glMapControlPointsNV) = (PFNGLMAPCONTROLPOINTSNVPROC)GLH_EXT_GET_PROC_ADDRESS("glMapControlPointsNV"); | ||
1164 | if (NULL == GLH_EXT_NAME(glMapControlPointsNV)) | ||
1165 | return FALSE; | ||
1166 | GLH_EXT_NAME(glMapParameterivNV) = (PFNGLMAPPARAMETERIVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glMapParameterivNV"); | ||
1167 | if (NULL == GLH_EXT_NAME(glMapParameterivNV)) | ||
1168 | return FALSE; | ||
1169 | GLH_EXT_NAME(glMapParameterfvNV) = (PFNGLMAPPARAMETERFVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glMapParameterfvNV"); | ||
1170 | if (NULL == GLH_EXT_NAME(glMapParameterfvNV)) | ||
1171 | return FALSE; | ||
1172 | GLH_EXT_NAME(glGetMapControlPointsNV) = (PFNGLGETMAPCONTROLPOINTSNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetMapControlPointsNV"); | ||
1173 | if (NULL == GLH_EXT_NAME(glGetMapControlPointsNV)) | ||
1174 | return FALSE; | ||
1175 | GLH_EXT_NAME(glGetMapParameterivNV) = (PFNGLGETMAPPARAMETERIVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetMapParameterivNV"); | ||
1176 | if (NULL == GLH_EXT_NAME(glGetMapParameterivNV)) | ||
1177 | return FALSE; | ||
1178 | GLH_EXT_NAME(glGetMapParameterfvNV) = (PFNGLGETMAPPARAMETERFVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetMapParameterfvNV"); | ||
1179 | if (NULL == GLH_EXT_NAME(glGetMapParameterfvNV)) | ||
1180 | return FALSE; | ||
1181 | GLH_EXT_NAME(glGetMapAttribParameterivNV) = (PFNGLGETMAPATTRIBPARAMETERIVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetMapAttribParameterivNV"); | ||
1182 | if (NULL == GLH_EXT_NAME(glGetMapAttribParameterivNV)) | ||
1183 | return FALSE; | ||
1184 | GLH_EXT_NAME(glGetMapAttribParameterfvNV) = (PFNGLGETMAPATTRIBPARAMETERFVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetMapAttribParameterfvNV"); | ||
1185 | if (NULL == GLH_EXT_NAME(glGetMapAttribParameterfvNV)) | ||
1186 | return FALSE; | ||
1187 | GLH_EXT_NAME(glEvalMapsNV) = (PFNGLEVALMAPSNVPROC)GLH_EXT_GET_PROC_ADDRESS("glEvalMapsNV"); | ||
1188 | if (NULL == GLH_EXT_NAME(glEvalMapsNV)) | ||
1189 | return FALSE; | ||
1190 | #endif | ||
1191 | |||
1192 | #ifdef GL_NV_fence | ||
1193 | } else if (0 == strcmp(extension, "GL_NV_fence")) { | ||
1194 | GLH_EXT_NAME(glGenFencesNV) = (PFNGLGENFENCESNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGenFencesNV"); | ||
1195 | if (NULL == GLH_EXT_NAME(glGenFencesNV)) | ||
1196 | return FALSE; | ||
1197 | GLH_EXT_NAME(glDeleteFencesNV) = (PFNGLDELETEFENCESNVPROC)GLH_EXT_GET_PROC_ADDRESS("glDeleteFencesNV"); | ||
1198 | if (NULL == GLH_EXT_NAME(glDeleteFencesNV)) | ||
1199 | return FALSE; | ||
1200 | GLH_EXT_NAME(glSetFenceNV) = (PFNGLSETFENCENVPROC)GLH_EXT_GET_PROC_ADDRESS("glSetFenceNV"); | ||
1201 | if (NULL == GLH_EXT_NAME(glSetFenceNV)) | ||
1202 | return FALSE; | ||
1203 | GLH_EXT_NAME(glTestFenceNV) = (PFNGLTESTFENCENVPROC)GLH_EXT_GET_PROC_ADDRESS("glTestFenceNV"); | ||
1204 | if (NULL == GLH_EXT_NAME(glTestFenceNV)) | ||
1205 | return FALSE; | ||
1206 | GLH_EXT_NAME(glFinishFenceNV) = (PFNGLFINISHFENCENVPROC)GLH_EXT_GET_PROC_ADDRESS("glFinishFenceNV"); | ||
1207 | if (NULL == GLH_EXT_NAME(glFinishFenceNV)) | ||
1208 | return FALSE; | ||
1209 | GLH_EXT_NAME(glIsFenceNV) = (PFNGLISFENCENVPROC)GLH_EXT_GET_PROC_ADDRESS("glIsFenceNV"); | ||
1210 | if (NULL == GLH_EXT_NAME(glIsFenceNV)) | ||
1211 | return FALSE; | ||
1212 | GLH_EXT_NAME(glGetFenceivNV) = (PFNGLGETFENCEIVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetFenceivNV"); | ||
1213 | if (NULL == GLH_EXT_NAME(glGetFenceivNV)) | ||
1214 | return FALSE; | ||
1215 | #endif | ||
1216 | |||
1217 | #ifdef GL_NV_fog_distance | ||
1218 | } else if (0 == strcmp(extension, "GL_NV_fog_distance")) { | ||
1219 | #endif | ||
1220 | |||
1221 | #ifdef GL_NV_packed_depth_stencil | ||
1222 | } else if (0 == strcmp(extension, "GL_NV_packed_depth_stencil")) { | ||
1223 | #endif | ||
1224 | |||
1225 | #ifdef GL_NV_register_combiners | ||
1226 | } else if (0 == strcmp(extension, "GL_NV_register_combiners")) { | ||
1227 | GLH_EXT_NAME(glCombinerParameterfvNV) = (PFNGLCOMBINERPARAMETERFVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glCombinerParameterfvNV"); | ||
1228 | if (NULL == GLH_EXT_NAME(glCombinerParameterfvNV)) | ||
1229 | return FALSE; | ||
1230 | GLH_EXT_NAME(glCombinerParameterfNV) = (PFNGLCOMBINERPARAMETERFNVPROC)GLH_EXT_GET_PROC_ADDRESS("glCombinerParameterfNV"); | ||
1231 | if (NULL == GLH_EXT_NAME(glCombinerParameterfNV)) | ||
1232 | return FALSE; | ||
1233 | GLH_EXT_NAME(glCombinerParameterivNV) = (PFNGLCOMBINERPARAMETERIVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glCombinerParameterivNV"); | ||
1234 | if (NULL == GLH_EXT_NAME(glCombinerParameterivNV)) | ||
1235 | return FALSE; | ||
1236 | GLH_EXT_NAME(glCombinerParameteriNV) = (PFNGLCOMBINERPARAMETERINVPROC)GLH_EXT_GET_PROC_ADDRESS("glCombinerParameteriNV"); | ||
1237 | if (NULL == GLH_EXT_NAME(glCombinerParameteriNV)) | ||
1238 | return FALSE; | ||
1239 | GLH_EXT_NAME(glCombinerInputNV) = (PFNGLCOMBINERINPUTNVPROC)GLH_EXT_GET_PROC_ADDRESS("glCombinerInputNV"); | ||
1240 | if (NULL == GLH_EXT_NAME(glCombinerInputNV)) | ||
1241 | return FALSE; | ||
1242 | GLH_EXT_NAME(glCombinerOutputNV) = (PFNGLCOMBINEROUTPUTNVPROC)GLH_EXT_GET_PROC_ADDRESS("glCombinerOutputNV"); | ||
1243 | if (NULL == GLH_EXT_NAME(glCombinerOutputNV)) | ||
1244 | return FALSE; | ||
1245 | GLH_EXT_NAME(glFinalCombinerInputNV) = (PFNGLFINALCOMBINERINPUTNVPROC)GLH_EXT_GET_PROC_ADDRESS("glFinalCombinerInputNV"); | ||
1246 | if (NULL == GLH_EXT_NAME(glFinalCombinerInputNV)) | ||
1247 | return FALSE; | ||
1248 | GLH_EXT_NAME(glGetCombinerInputParameterfvNV) = (PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetCombinerInputParameterfvNV"); | ||
1249 | if (NULL == GLH_EXT_NAME(glGetCombinerInputParameterfvNV)) | ||
1250 | return FALSE; | ||
1251 | GLH_EXT_NAME(glGetCombinerInputParameterivNV) = (PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetCombinerInputParameterivNV"); | ||
1252 | if (NULL == GLH_EXT_NAME(glGetCombinerInputParameterivNV)) | ||
1253 | return FALSE; | ||
1254 | GLH_EXT_NAME(glGetCombinerOutputParameterfvNV) = (PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetCombinerOutputParameterfvNV"); | ||
1255 | if (NULL == GLH_EXT_NAME(glGetCombinerOutputParameterfvNV)) | ||
1256 | return FALSE; | ||
1257 | GLH_EXT_NAME(glGetCombinerOutputParameterivNV) = (PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetCombinerOutputParameterivNV"); | ||
1258 | if (NULL == GLH_EXT_NAME(glGetCombinerOutputParameterivNV)) | ||
1259 | return FALSE; | ||
1260 | GLH_EXT_NAME(glGetFinalCombinerInputParameterfvNV) = (PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetFinalCombinerInputParameterfvNV"); | ||
1261 | if (NULL == GLH_EXT_NAME(glGetFinalCombinerInputParameterfvNV)) | ||
1262 | return FALSE; | ||
1263 | GLH_EXT_NAME(glGetFinalCombinerInputParameterivNV) = (PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetFinalCombinerInputParameterivNV"); | ||
1264 | if (NULL == GLH_EXT_NAME(glGetFinalCombinerInputParameterivNV)) | ||
1265 | return FALSE; | ||
1266 | #endif | ||
1267 | |||
1268 | #ifdef GL_NV_register_combiners2 | ||
1269 | } else if (0 == strcmp(extension, "GL_NV_register_combiners2")) { | ||
1270 | GLH_EXT_NAME(glCombinerStageParameterfvNV) = (PFNGLCOMBINERSTAGEPARAMETERFVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glCombinerStageParameterfvNV"); | ||
1271 | if (NULL == GLH_EXT_NAME(glCombinerStageParameterfvNV)) | ||
1272 | return FALSE; | ||
1273 | GLH_EXT_NAME(glGetCombinerStageParameterfvNV) = (PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetCombinerStageParameterfvNV"); | ||
1274 | if (NULL == GLH_EXT_NAME(glGetCombinerStageParameterfvNV)) | ||
1275 | return FALSE; | ||
1276 | #endif | ||
1277 | |||
1278 | #ifdef GL_NV_texgen_reflection | ||
1279 | } else if (0 == strcmp(extension, "GL_NV_texgen_reflection")) { | ||
1280 | #endif | ||
1281 | |||
1282 | #ifdef GL_NV_texture_env_combine4 | ||
1283 | } else if (0 == strcmp(extension, "GL_NV_texture_env_combine4")) { | ||
1284 | #endif | ||
1285 | |||
1286 | #ifdef GL_NV_texture_rectangle | ||
1287 | } else if (0 == strcmp(extension, "GL_NV_texture_rectangle")) { | ||
1288 | #endif | ||
1289 | |||
1290 | #ifdef GL_NV_texture_shader | ||
1291 | } else if (0 == strcmp(extension, "GL_NV_texture_shader")) { | ||
1292 | #endif | ||
1293 | |||
1294 | #ifdef GL_NV_vertex_array_range | ||
1295 | } else if (0 == strcmp(extension, "GL_NV_vertex_array_range")) { | ||
1296 | GLH_EXT_NAME(glFlushVertexArrayRangeNV) = (PFNGLFLUSHVERTEXARRAYRANGENVPROC)GLH_EXT_GET_PROC_ADDRESS("glFlushVertexArrayRangeNV"); | ||
1297 | if (NULL == GLH_EXT_NAME(glFlushVertexArrayRangeNV)) | ||
1298 | return FALSE; | ||
1299 | GLH_EXT_NAME(glVertexArrayRangeNV) = (PFNGLVERTEXARRAYRANGENVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexArrayRangeNV"); | ||
1300 | if (NULL == GLH_EXT_NAME(glVertexArrayRangeNV)) | ||
1301 | return FALSE; | ||
1302 | # ifdef _WIN32 | ||
1303 | GLH_EXT_NAME(wglAllocateMemoryNV) = (PFNWGLALLOCATEMEMORYNVPROC)GLH_EXT_GET_PROC_ADDRESS("wglAllocateMemoryNV"); | ||
1304 | if (NULL == GLH_EXT_NAME(wglAllocateMemoryNV)) | ||
1305 | return FALSE; | ||
1306 | # endif | ||
1307 | # ifdef GLX_VERSION_1_3 | ||
1308 | GLH_EXT_NAME(glXAllocateMemoryNV) = (PFNGLXALLOCATEMEMORYNVPROC)GLH_EXT_GET_PROC_ADDRESS("glXAllocateMemoryNV"); | ||
1309 | if (NULL == GLH_EXT_NAME(glXAllocateMemoryNV)) | ||
1310 | return FALSE; | ||
1311 | # endif | ||
1312 | # ifdef _WIN32 | ||
1313 | GLH_EXT_NAME(wglFreeMemoryNV) = (PFNWGLFREEMEMORYNVPROC)GLH_EXT_GET_PROC_ADDRESS("wglFreeMemoryNV"); | ||
1314 | if (NULL == GLH_EXT_NAME(wglFreeMemoryNV)) | ||
1315 | return FALSE; | ||
1316 | # endif | ||
1317 | # ifdef GLX_VERSION_1_3 | ||
1318 | GLH_EXT_NAME(glXFreeMemoryNV) = (PFNGLXFREEMEMORYNVPROC)GLH_EXT_GET_PROC_ADDRESS("glXFreeMemoryNV"); | ||
1319 | if (NULL == GLH_EXT_NAME(glXFreeMemoryNV)) | ||
1320 | return FALSE; | ||
1321 | # endif | ||
1322 | #endif | ||
1323 | |||
1324 | #ifdef GL_NV_vertex_program | ||
1325 | } else if (0 == strcmp(extension, "GL_NV_vertex_program")) { | ||
1326 | GLH_EXT_NAME(glAreProgramsResidentNV) = (PFNGLAREPROGRAMSRESIDENTNVPROC)GLH_EXT_GET_PROC_ADDRESS("glAreProgramsResidentNV"); | ||
1327 | if (NULL == GLH_EXT_NAME(glAreProgramsResidentNV)) | ||
1328 | return FALSE; | ||
1329 | GLH_EXT_NAME(glBindProgramNV) = (PFNGLBINDPROGRAMNVPROC)GLH_EXT_GET_PROC_ADDRESS("glBindProgramNV"); | ||
1330 | if (NULL == GLH_EXT_NAME(glBindProgramNV)) | ||
1331 | return FALSE; | ||
1332 | GLH_EXT_NAME(glDeleteProgramsNV) = (PFNGLDELETEPROGRAMSNVPROC)GLH_EXT_GET_PROC_ADDRESS("glDeleteProgramsNV"); | ||
1333 | if (NULL == GLH_EXT_NAME(glDeleteProgramsNV)) | ||
1334 | return FALSE; | ||
1335 | GLH_EXT_NAME(glExecuteProgramNV) = (PFNGLEXECUTEPROGRAMNVPROC)GLH_EXT_GET_PROC_ADDRESS("glExecuteProgramNV"); | ||
1336 | if (NULL == GLH_EXT_NAME(glExecuteProgramNV)) | ||
1337 | return FALSE; | ||
1338 | GLH_EXT_NAME(glGenProgramsNV) = (PFNGLGENPROGRAMSNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGenProgramsNV"); | ||
1339 | if (NULL == GLH_EXT_NAME(glGenProgramsNV)) | ||
1340 | return FALSE; | ||
1341 | GLH_EXT_NAME(glGetProgramParameterdvNV) = (PFNGLGETPROGRAMPARAMETERDVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetProgramParameterdvNV"); | ||
1342 | if (NULL == GLH_EXT_NAME(glGetProgramParameterdvNV)) | ||
1343 | return FALSE; | ||
1344 | GLH_EXT_NAME(glGetProgramParameterfvNV) = (PFNGLGETPROGRAMPARAMETERFVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetProgramParameterfvNV"); | ||
1345 | if (NULL == GLH_EXT_NAME(glGetProgramParameterfvNV)) | ||
1346 | return FALSE; | ||
1347 | GLH_EXT_NAME(glGetProgramivNV) = (PFNGLGETPROGRAMIVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetProgramivNV"); | ||
1348 | if (NULL == GLH_EXT_NAME(glGetProgramivNV)) | ||
1349 | return FALSE; | ||
1350 | GLH_EXT_NAME(glGetProgramStringNV) = (PFNGLGETPROGRAMSTRINGNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetProgramStringNV"); | ||
1351 | if (NULL == GLH_EXT_NAME(glGetProgramStringNV)) | ||
1352 | return FALSE; | ||
1353 | GLH_EXT_NAME(glGetTrackMatrixivNV) = (PFNGLGETTRACKMATRIXIVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetTrackMatrixivNV"); | ||
1354 | if (NULL == GLH_EXT_NAME(glGetTrackMatrixivNV)) | ||
1355 | return FALSE; | ||
1356 | GLH_EXT_NAME(glGetVertexAttribdvNV) = (PFNGLGETVERTEXATTRIBDVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetVertexAttribdvNV"); | ||
1357 | if (NULL == GLH_EXT_NAME(glGetVertexAttribdvNV)) | ||
1358 | return FALSE; | ||
1359 | GLH_EXT_NAME(glGetVertexAttribfvNV) = (PFNGLGETVERTEXATTRIBFVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetVertexAttribfvNV"); | ||
1360 | if (NULL == GLH_EXT_NAME(glGetVertexAttribfvNV)) | ||
1361 | return FALSE; | ||
1362 | GLH_EXT_NAME(glGetVertexAttribivNV) = (PFNGLGETVERTEXATTRIBIVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetVertexAttribivNV"); | ||
1363 | if (NULL == GLH_EXT_NAME(glGetVertexAttribivNV)) | ||
1364 | return FALSE; | ||
1365 | GLH_EXT_NAME(glGetVertexAttribPointervNV) = (PFNGLGETVERTEXATTRIBPOINTERVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetVertexAttribPointervNV"); | ||
1366 | if (NULL == GLH_EXT_NAME(glGetVertexAttribPointervNV)) | ||
1367 | return FALSE; | ||
1368 | GLH_EXT_NAME(glIsProgramNV) = (PFNGLISPROGRAMNVPROC)GLH_EXT_GET_PROC_ADDRESS("glIsProgramNV"); | ||
1369 | if (NULL == GLH_EXT_NAME(glIsProgramNV)) | ||
1370 | return FALSE; | ||
1371 | GLH_EXT_NAME(glLoadProgramNV) = (PFNGLLOADPROGRAMNVPROC)GLH_EXT_GET_PROC_ADDRESS("glLoadProgramNV"); | ||
1372 | if (NULL == GLH_EXT_NAME(glLoadProgramNV)) | ||
1373 | return FALSE; | ||
1374 | GLH_EXT_NAME(glProgramParameter4dNV) = (PFNGLPROGRAMPARAMETER4DNVPROC)GLH_EXT_GET_PROC_ADDRESS("glProgramParameter4dNV"); | ||
1375 | if (NULL == GLH_EXT_NAME(glProgramParameter4dNV)) | ||
1376 | return FALSE; | ||
1377 | GLH_EXT_NAME(glProgramParameter4dvNV) = (PFNGLPROGRAMPARAMETER4DVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glProgramParameter4dvNV"); | ||
1378 | if (NULL == GLH_EXT_NAME(glProgramParameter4dvNV)) | ||
1379 | return FALSE; | ||
1380 | GLH_EXT_NAME(glProgramParameter4fNV) = (PFNGLPROGRAMPARAMETER4FNVPROC)GLH_EXT_GET_PROC_ADDRESS("glProgramParameter4fNV"); | ||
1381 | if (NULL == GLH_EXT_NAME(glProgramParameter4fNV)) | ||
1382 | return FALSE; | ||
1383 | GLH_EXT_NAME(glProgramParameter4fvNV) = (PFNGLPROGRAMPARAMETER4FVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glProgramParameter4fvNV"); | ||
1384 | if (NULL == GLH_EXT_NAME(glProgramParameter4fvNV)) | ||
1385 | return FALSE; | ||
1386 | GLH_EXT_NAME(glProgramParameters4dvNV) = (PFNGLPROGRAMPARAMETERS4DVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glProgramParameters4dvNV"); | ||
1387 | if (NULL == GLH_EXT_NAME(glProgramParameters4dvNV)) | ||
1388 | return FALSE; | ||
1389 | GLH_EXT_NAME(glProgramParameters4fvNV) = (PFNGLPROGRAMPARAMETERS4FVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glProgramParameters4fvNV"); | ||
1390 | if (NULL == GLH_EXT_NAME(glProgramParameters4fvNV)) | ||
1391 | return FALSE; | ||
1392 | GLH_EXT_NAME(glRequestResidentProgramsNV) = (PFNGLREQUESTRESIDENTPROGRAMSNVPROC)GLH_EXT_GET_PROC_ADDRESS("glRequestResidentProgramsNV"); | ||
1393 | if (NULL == GLH_EXT_NAME(glRequestResidentProgramsNV)) | ||
1394 | return FALSE; | ||
1395 | GLH_EXT_NAME(glTrackMatrixNV) = (PFNGLTRACKMATRIXNVPROC)GLH_EXT_GET_PROC_ADDRESS("glTrackMatrixNV"); | ||
1396 | if (NULL == GLH_EXT_NAME(glTrackMatrixNV)) | ||
1397 | return FALSE; | ||
1398 | GLH_EXT_NAME(glVertexAttribPointerNV) = (PFNGLVERTEXATTRIBPOINTERNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttribPointerNV"); | ||
1399 | if (NULL == GLH_EXT_NAME(glVertexAttribPointerNV)) | ||
1400 | return FALSE; | ||
1401 | GLH_EXT_NAME(glVertexAttrib1dNV) = (PFNGLVERTEXATTRIB1DNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib1dNV"); | ||
1402 | if (NULL == GLH_EXT_NAME(glVertexAttrib1dNV)) | ||
1403 | return FALSE; | ||
1404 | GLH_EXT_NAME(glVertexAttrib1dvNV) = (PFNGLVERTEXATTRIB1DVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib1dvNV"); | ||
1405 | if (NULL == GLH_EXT_NAME(glVertexAttrib1dvNV)) | ||
1406 | return FALSE; | ||
1407 | GLH_EXT_NAME(glVertexAttrib1fNV) = (PFNGLVERTEXATTRIB1FNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib1fNV"); | ||
1408 | if (NULL == GLH_EXT_NAME(glVertexAttrib1fNV)) | ||
1409 | return FALSE; | ||
1410 | GLH_EXT_NAME(glVertexAttrib1fvNV) = (PFNGLVERTEXATTRIB1FVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib1fvNV"); | ||
1411 | if (NULL == GLH_EXT_NAME(glVertexAttrib1fvNV)) | ||
1412 | return FALSE; | ||
1413 | GLH_EXT_NAME(glVertexAttrib1sNV) = (PFNGLVERTEXATTRIB1SNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib1sNV"); | ||
1414 | if (NULL == GLH_EXT_NAME(glVertexAttrib1sNV)) | ||
1415 | return FALSE; | ||
1416 | GLH_EXT_NAME(glVertexAttrib1svNV) = (PFNGLVERTEXATTRIB1SVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib1svNV"); | ||
1417 | if (NULL == GLH_EXT_NAME(glVertexAttrib1svNV)) | ||
1418 | return FALSE; | ||
1419 | GLH_EXT_NAME(glVertexAttrib2dNV) = (PFNGLVERTEXATTRIB2DNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib2dNV"); | ||
1420 | if (NULL == GLH_EXT_NAME(glVertexAttrib2dNV)) | ||
1421 | return FALSE; | ||
1422 | GLH_EXT_NAME(glVertexAttrib2dvNV) = (PFNGLVERTEXATTRIB2DVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib2dvNV"); | ||
1423 | if (NULL == GLH_EXT_NAME(glVertexAttrib2dvNV)) | ||
1424 | return FALSE; | ||
1425 | GLH_EXT_NAME(glVertexAttrib2fNV) = (PFNGLVERTEXATTRIB2FNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib2fNV"); | ||
1426 | if (NULL == GLH_EXT_NAME(glVertexAttrib2fNV)) | ||
1427 | return FALSE; | ||
1428 | GLH_EXT_NAME(glVertexAttrib2fvNV) = (PFNGLVERTEXATTRIB2FVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib2fvNV"); | ||
1429 | if (NULL == GLH_EXT_NAME(glVertexAttrib2fvNV)) | ||
1430 | return FALSE; | ||
1431 | GLH_EXT_NAME(glVertexAttrib2sNV) = (PFNGLVERTEXATTRIB2SNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib2sNV"); | ||
1432 | if (NULL == GLH_EXT_NAME(glVertexAttrib2sNV)) | ||
1433 | return FALSE; | ||
1434 | GLH_EXT_NAME(glVertexAttrib2svNV) = (PFNGLVERTEXATTRIB2SVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib2svNV"); | ||
1435 | if (NULL == GLH_EXT_NAME(glVertexAttrib2svNV)) | ||
1436 | return FALSE; | ||
1437 | GLH_EXT_NAME(glVertexAttrib3dNV) = (PFNGLVERTEXATTRIB3DNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib3dNV"); | ||
1438 | if (NULL == GLH_EXT_NAME(glVertexAttrib3dNV)) | ||
1439 | return FALSE; | ||
1440 | GLH_EXT_NAME(glVertexAttrib3dvNV) = (PFNGLVERTEXATTRIB3DVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib3dvNV"); | ||
1441 | if (NULL == GLH_EXT_NAME(glVertexAttrib3dvNV)) | ||
1442 | return FALSE; | ||
1443 | GLH_EXT_NAME(glVertexAttrib3fNV) = (PFNGLVERTEXATTRIB3FNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib3fNV"); | ||
1444 | if (NULL == GLH_EXT_NAME(glVertexAttrib3fNV)) | ||
1445 | return FALSE; | ||
1446 | GLH_EXT_NAME(glVertexAttrib3fvNV) = (PFNGLVERTEXATTRIB3FVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib3fvNV"); | ||
1447 | if (NULL == GLH_EXT_NAME(glVertexAttrib3fvNV)) | ||
1448 | return FALSE; | ||
1449 | GLH_EXT_NAME(glVertexAttrib3sNV) = (PFNGLVERTEXATTRIB3SNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib3sNV"); | ||
1450 | if (NULL == GLH_EXT_NAME(glVertexAttrib3sNV)) | ||
1451 | return FALSE; | ||
1452 | GLH_EXT_NAME(glVertexAttrib3svNV) = (PFNGLVERTEXATTRIB3SVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib3svNV"); | ||
1453 | if (NULL == GLH_EXT_NAME(glVertexAttrib3svNV)) | ||
1454 | return FALSE; | ||
1455 | GLH_EXT_NAME(glVertexAttrib4dNV) = (PFNGLVERTEXATTRIB4DNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib4dNV"); | ||
1456 | if (NULL == GLH_EXT_NAME(glVertexAttrib4dNV)) | ||
1457 | return FALSE; | ||
1458 | GLH_EXT_NAME(glVertexAttrib4dvNV) = (PFNGLVERTEXATTRIB4DVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib4dvNV"); | ||
1459 | if (NULL == GLH_EXT_NAME(glVertexAttrib4dvNV)) | ||
1460 | return FALSE; | ||
1461 | GLH_EXT_NAME(glVertexAttrib4fNV) = (PFNGLVERTEXATTRIB4FNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib4fNV"); | ||
1462 | if (NULL == GLH_EXT_NAME(glVertexAttrib4fNV)) | ||
1463 | return FALSE; | ||
1464 | GLH_EXT_NAME(glVertexAttrib4fvNV) = (PFNGLVERTEXATTRIB4FVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib4fvNV"); | ||
1465 | if (NULL == GLH_EXT_NAME(glVertexAttrib4fvNV)) | ||
1466 | return FALSE; | ||
1467 | GLH_EXT_NAME(glVertexAttrib4sNV) = (PFNGLVERTEXATTRIB4SNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib4sNV"); | ||
1468 | if (NULL == GLH_EXT_NAME(glVertexAttrib4sNV)) | ||
1469 | return FALSE; | ||
1470 | GLH_EXT_NAME(glVertexAttrib4svNV) = (PFNGLVERTEXATTRIB4SVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib4svNV"); | ||
1471 | if (NULL == GLH_EXT_NAME(glVertexAttrib4svNV)) | ||
1472 | return FALSE; | ||
1473 | GLH_EXT_NAME(glVertexAttrib4ubvNV) = (PFNGLVERTEXATTRIB4UBVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttrib4ubvNV"); | ||
1474 | if (NULL == GLH_EXT_NAME(glVertexAttrib4ubvNV)) | ||
1475 | return FALSE; | ||
1476 | GLH_EXT_NAME(glVertexAttribs1dvNV) = (PFNGLVERTEXATTRIBS1DVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttribs1dvNV"); | ||
1477 | if (NULL == GLH_EXT_NAME(glVertexAttribs1dvNV)) | ||
1478 | return FALSE; | ||
1479 | GLH_EXT_NAME(glVertexAttribs1fvNV) = (PFNGLVERTEXATTRIBS1FVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttribs1fvNV"); | ||
1480 | if (NULL == GLH_EXT_NAME(glVertexAttribs1fvNV)) | ||
1481 | return FALSE; | ||
1482 | GLH_EXT_NAME(glVertexAttribs1svNV) = (PFNGLVERTEXATTRIBS1SVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttribs1svNV"); | ||
1483 | if (NULL == GLH_EXT_NAME(glVertexAttribs1svNV)) | ||
1484 | return FALSE; | ||
1485 | GLH_EXT_NAME(glVertexAttribs2dvNV) = (PFNGLVERTEXATTRIBS2DVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttribs2dvNV"); | ||
1486 | if (NULL == GLH_EXT_NAME(glVertexAttribs2dvNV)) | ||
1487 | return FALSE; | ||
1488 | GLH_EXT_NAME(glVertexAttribs2fvNV) = (PFNGLVERTEXATTRIBS2FVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttribs2fvNV"); | ||
1489 | if (NULL == GLH_EXT_NAME(glVertexAttribs2fvNV)) | ||
1490 | return FALSE; | ||
1491 | GLH_EXT_NAME(glVertexAttribs2svNV) = (PFNGLVERTEXATTRIBS2SVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttribs2svNV"); | ||
1492 | if (NULL == GLH_EXT_NAME(glVertexAttribs2svNV)) | ||
1493 | return FALSE; | ||
1494 | GLH_EXT_NAME(glVertexAttribs3dvNV) = (PFNGLVERTEXATTRIBS3DVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttribs3dvNV"); | ||
1495 | if (NULL == GLH_EXT_NAME(glVertexAttribs3dvNV)) | ||
1496 | return FALSE; | ||
1497 | GLH_EXT_NAME(glVertexAttribs3fvNV) = (PFNGLVERTEXATTRIBS3FVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttribs3fvNV"); | ||
1498 | if (NULL == GLH_EXT_NAME(glVertexAttribs3fvNV)) | ||
1499 | return FALSE; | ||
1500 | GLH_EXT_NAME(glVertexAttribs3svNV) = (PFNGLVERTEXATTRIBS3SVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttribs3svNV"); | ||
1501 | if (NULL == GLH_EXT_NAME(glVertexAttribs3svNV)) | ||
1502 | return FALSE; | ||
1503 | GLH_EXT_NAME(glVertexAttribs4dvNV) = (PFNGLVERTEXATTRIBS4DVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttribs4dvNV"); | ||
1504 | if (NULL == GLH_EXT_NAME(glVertexAttribs4dvNV)) | ||
1505 | return FALSE; | ||
1506 | GLH_EXT_NAME(glVertexAttribs4fvNV) = (PFNGLVERTEXATTRIBS4FVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttribs4fvNV"); | ||
1507 | if (NULL == GLH_EXT_NAME(glVertexAttribs4fvNV)) | ||
1508 | return FALSE; | ||
1509 | GLH_EXT_NAME(glVertexAttribs4svNV) = (PFNGLVERTEXATTRIBS4SVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttribs4svNV"); | ||
1510 | if (NULL == GLH_EXT_NAME(glVertexAttribs4svNV)) | ||
1511 | return FALSE; | ||
1512 | GLH_EXT_NAME(glVertexAttribs4ubvNV) = (PFNGLVERTEXATTRIBS4UBVNVPROC)GLH_EXT_GET_PROC_ADDRESS("glVertexAttribs4ubvNV"); | ||
1513 | if (NULL == GLH_EXT_NAME(glVertexAttribs4ubvNV)) | ||
1514 | return FALSE; | ||
1515 | #endif | ||
1516 | |||
1517 | #ifdef GL_SGIS_generate_mipmap | ||
1518 | } else if (0 == strcmp(extension, "GL_SGIS_generate_mipmap")) { | ||
1519 | #endif | ||
1520 | |||
1521 | #ifdef GL_SGIS_texture_lod | ||
1522 | } else if (0 == strcmp(extension, "GL_SGIS_texture_lod")) { | ||
1523 | #endif | ||
1524 | |||
1525 | #ifdef GL_SGIX_depth_texture | ||
1526 | } else if (0 == strcmp(extension, "GL_SGIX_depth_texture")) { | ||
1527 | #endif | ||
1528 | |||
1529 | #ifdef GL_SGIX_shadow | ||
1530 | } else if (0 == strcmp(extension, "GL_SGIX_shadow")) { | ||
1531 | #endif | ||
1532 | |||
1533 | #ifdef GL_VERSION_1_2 | ||
1534 | } else if (0 == strcmp(extension, "GL_VERSION_1_2")) { | ||
1535 | GLH_CORE_1_2_NAME(glBlendColor) = (PFNGLBLENDCOLORPROC)GLH_EXT_GET_PROC_ADDRESS("glBlendColor"); | ||
1536 | if (NULL == GLH_CORE_1_2_NAME(glBlendColor)) | ||
1537 | return FALSE; | ||
1538 | GLH_CORE_1_2_NAME(glBlendEquation) = (PFNGLBLENDEQUATIONPROC)GLH_EXT_GET_PROC_ADDRESS("glBlendEquation"); | ||
1539 | if (NULL == GLH_CORE_1_2_NAME(glBlendEquation)) | ||
1540 | return FALSE; | ||
1541 | GLH_CORE_1_2_NAME(glDrawRangeElements) = (PFNGLDRAWRANGEELEMENTSPROC)GLH_EXT_GET_PROC_ADDRESS("glDrawRangeElements"); | ||
1542 | if (NULL == GLH_CORE_1_2_NAME(glDrawRangeElements)) | ||
1543 | return FALSE; | ||
1544 | GLH_CORE_1_2_NAME(glColorTable) = (PFNGLCOLORTABLEPROC)GLH_EXT_GET_PROC_ADDRESS("glColorTable"); | ||
1545 | if (NULL == GLH_CORE_1_2_NAME(glColorTable)) | ||
1546 | return FALSE; | ||
1547 | GLH_CORE_1_2_NAME(glColorTableParameterfv) = (PFNGLCOLORTABLEPARAMETERFVPROC)GLH_EXT_GET_PROC_ADDRESS("glColorTableParameterfv"); | ||
1548 | if (NULL == GLH_CORE_1_2_NAME(glColorTableParameterfv)) | ||
1549 | return FALSE; | ||
1550 | GLH_CORE_1_2_NAME(glColorTableParameteriv) = (PFNGLCOLORTABLEPARAMETERIVPROC)GLH_EXT_GET_PROC_ADDRESS("glColorTableParameteriv"); | ||
1551 | if (NULL == GLH_CORE_1_2_NAME(glColorTableParameteriv)) | ||
1552 | return FALSE; | ||
1553 | GLH_CORE_1_2_NAME(glCopyColorTable) = (PFNGLCOPYCOLORTABLEPROC)GLH_EXT_GET_PROC_ADDRESS("glCopyColorTable"); | ||
1554 | if (NULL == GLH_CORE_1_2_NAME(glCopyColorTable)) | ||
1555 | return FALSE; | ||
1556 | GLH_CORE_1_2_NAME(glGetColorTable) = (PFNGLGETCOLORTABLEPROC)GLH_EXT_GET_PROC_ADDRESS("glGetColorTable"); | ||
1557 | if (NULL == GLH_CORE_1_2_NAME(glGetColorTable)) | ||
1558 | return FALSE; | ||
1559 | GLH_CORE_1_2_NAME(glGetColorTableParameterfv) = (PFNGLGETCOLORTABLEPARAMETERFVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetColorTableParameterfv"); | ||
1560 | if (NULL == GLH_CORE_1_2_NAME(glGetColorTableParameterfv)) | ||
1561 | return FALSE; | ||
1562 | GLH_CORE_1_2_NAME(glGetColorTableParameteriv) = (PFNGLGETCOLORTABLEPARAMETERIVPROC)GLH_EXT_GET_PROC_ADDRESS("glGetColorTableParameteriv"); | ||
1563 | if (NULL == GLH_CORE_1_2_NAME(glGetColorTableParameteriv)) | ||
1564 | return FALSE; | ||
1565 | GLH_CORE_1_2_NAME(glTexImage3D) = (PFNGLTEXIMAGE3DPROC)GLH_EXT_GET_PROC_ADDRESS("glTexImage3D"); | ||
1566 | if (NULL == GLH_CORE_1_2_NAME(glTexImage3D)) | ||
1567 | return FALSE; | ||
1568 | GLH_CORE_1_2_NAME(glTexSubImage3D) = (PFNGLTEXSUBIMAGE3DPROC)GLH_EXT_GET_PROC_ADDRESS("glTexSubImage3D"); | ||
1569 | if (NULL == GLH_CORE_1_2_NAME(glTexSubImage3D)) | ||
1570 | return FALSE; | ||
1571 | GLH_CORE_1_2_NAME(glCopyTexSubImage3D) = (PFNGLCOPYTEXSUBIMAGE3DPROC)GLH_EXT_GET_PROC_ADDRESS("glCopyTexSubImage3D"); | ||
1572 | if (NULL == GLH_CORE_1_2_NAME(glCopyTexSubImage3D)) | ||
1573 | return FALSE; | ||
1574 | #endif | ||
1575 | |||
1576 | #ifdef GL_WIN_swap_hint | ||
1577 | } else if (0 == strcmp(extension, "GL_WIN_swap_hint")) { | ||
1578 | GLH_EXT_NAME(glAddSwapHintRectWIN) = (PFNGLADDSWAPHINTRECTWINPROC)GLH_EXT_GET_PROC_ADDRESS("glAddSwapHintRectWIN"); | ||
1579 | if (NULL == GLH_EXT_NAME(glAddSwapHintRectWIN)) | ||
1580 | return FALSE; | ||
1581 | #endif | ||
1582 | |||
1583 | #ifdef WGL_ARB_pbuffer | ||
1584 | } else if (0 == strcmp(extension, "WGL_ARB_pbuffer")) { | ||
1585 | # ifdef _WIN32 | ||
1586 | GLH_EXT_NAME(wglCreatePbufferARB) = (PFNWGLCREATEPBUFFERARBPROC)GLH_EXT_GET_PROC_ADDRESS("wglCreatePbufferARB"); | ||
1587 | if (NULL == GLH_EXT_NAME(wglCreatePbufferARB)) | ||
1588 | return FALSE; | ||
1589 | # endif | ||
1590 | # ifdef _WIN32 | ||
1591 | GLH_EXT_NAME(wglGetPbufferDCARB) = (PFNWGLGETPBUFFERDCARBPROC)GLH_EXT_GET_PROC_ADDRESS("wglGetPbufferDCARB"); | ||
1592 | if (NULL == GLH_EXT_NAME(wglGetPbufferDCARB)) | ||
1593 | return FALSE; | ||
1594 | # endif | ||
1595 | # ifdef _WIN32 | ||
1596 | GLH_EXT_NAME(wglReleasePbufferDCARB) = (PFNWGLRELEASEPBUFFERDCARBPROC)GLH_EXT_GET_PROC_ADDRESS("wglReleasePbufferDCARB"); | ||
1597 | if (NULL == GLH_EXT_NAME(wglReleasePbufferDCARB)) | ||
1598 | return FALSE; | ||
1599 | # endif | ||
1600 | # ifdef _WIN32 | ||
1601 | GLH_EXT_NAME(wglDestroyPbufferARB) = (PFNWGLDESTROYPBUFFERARBPROC)GLH_EXT_GET_PROC_ADDRESS("wglDestroyPbufferARB"); | ||
1602 | if (NULL == GLH_EXT_NAME(wglDestroyPbufferARB)) | ||
1603 | return FALSE; | ||
1604 | # endif | ||
1605 | # ifdef _WIN32 | ||
1606 | GLH_EXT_NAME(wglQueryPbufferARB) = (PFNWGLQUERYPBUFFERARBPROC)GLH_EXT_GET_PROC_ADDRESS("wglQueryPbufferARB"); | ||
1607 | if (NULL == GLH_EXT_NAME(wglQueryPbufferARB)) | ||
1608 | return FALSE; | ||
1609 | # endif | ||
1610 | #endif | ||
1611 | |||
1612 | #ifdef WGL_ARB_render_texture | ||
1613 | # ifdef _WIN32 | ||
1614 | GLH_EXT_NAME(wglBindTexImageARB) = (PFNWGLBINDTEXIMAGEARBPROC)GLH_EXT_GET_PROC_ADDRESS("wglBindTexImageARB"); | ||
1615 | if (NULL == GLH_EXT_NAME(wglBindTexImageARB)) | ||
1616 | return FALSE; | ||
1617 | # endif | ||
1618 | # ifdef _WIN32 | ||
1619 | GLH_EXT_NAME(wglReleaseTexImageARB) = (PFNWGLRELEASETEXIMAGEARBPROC)GLH_EXT_GET_PROC_ADDRESS("wglReleaseTexImageARB"); | ||
1620 | if (NULL == GLH_EXT_NAME(wglReleaseTexImageARB)) | ||
1621 | return FALSE; | ||
1622 | # endif | ||
1623 | # ifdef _WIN32 | ||
1624 | GLH_EXT_NAME(wglSetPbufferAttribARB) = (PFNWGLSETPBUFFERATTRIBARBPROC)GLH_EXT_GET_PROC_ADDRESS("wglSetPbufferAttribARB"); | ||
1625 | if (NULL == GLH_EXT_NAME(wglSetPbufferAttribARB)) | ||
1626 | return FALSE; | ||
1627 | # endif | ||
1628 | #endif | ||
1629 | |||
1630 | #ifdef WGL_ARB_pixel_format | ||
1631 | } else if (0 == strcmp(extension, "WGL_ARB_pixel_format")) { | ||
1632 | # ifdef _WIN32 | ||
1633 | GLH_EXT_NAME(wglGetPixelFormatAttribivARB) = (PFNWGLGETPIXELFORMATATTRIBIVARBPROC)GLH_EXT_GET_PROC_ADDRESS("wglGetPixelFormatAttribivARB"); | ||
1634 | if (NULL == GLH_EXT_NAME(wglGetPixelFormatAttribivARB)) | ||
1635 | return FALSE; | ||
1636 | # endif | ||
1637 | # ifdef _WIN32 | ||
1638 | GLH_EXT_NAME(wglGetPixelFormatAttribfvARB) = (PFNWGLGETPIXELFORMATATTRIBFVARBPROC)GLH_EXT_GET_PROC_ADDRESS("wglGetPixelFormatAttribfvARB"); | ||
1639 | if (NULL == GLH_EXT_NAME(wglGetPixelFormatAttribfvARB)) | ||
1640 | return FALSE; | ||
1641 | # endif | ||
1642 | # ifdef _WIN32 | ||
1643 | GLH_EXT_NAME(wglChoosePixelFormatARB) = (PFNWGLCHOOSEPIXELFORMATARBPROC)GLH_EXT_GET_PROC_ADDRESS("wglChoosePixelFormatARB"); | ||
1644 | if (NULL == GLH_EXT_NAME(wglChoosePixelFormatARB)) | ||
1645 | return FALSE; | ||
1646 | # endif | ||
1647 | #endif | ||
1648 | |||
1649 | } else { | ||
1650 | return FALSE; | ||
1651 | } | ||
1652 | return TRUE; | ||
1653 | } | ||
1654 | #endif | ||
1655 | |||
1656 | #else // defined(__APPLE__) | ||
1657 | |||
1658 | #ifdef GLH_EXT_SINGLE_FILE | ||
1659 | |||
1660 | int glh_init_extension(const char* extension) | ||
1661 | { | ||
1662 | // MBW -- XXX -- Should this check for extension availability? | ||
1663 | return TRUE; | ||
1664 | } | ||
1665 | #endif // GLH_EXT_SINGLE_FILE | ||
1666 | |||
1667 | #endif // defined(__APPLE__) | ||
1668 | |||
1669 | #undef GLH_EXT_SINGLE_FILE | ||
1670 | |||
1671 | #endif /* GLH_GENEXT_H */ | ||
diff --git a/linden/libraries/include/glh/glh_linear.h b/linden/libraries/include/glh/glh_linear.h deleted file mode 100755 index 04ae1bd..0000000 --- a/linden/libraries/include/glh/glh_linear.h +++ /dev/null | |||
@@ -1,1621 +0,0 @@ | |||
1 | /* | ||
2 | glh - is a platform-indepenedent C++ OpenGL helper library | ||
3 | |||
4 | |||
5 | Copyright (c) 2000 Cass Everitt | ||
6 | Copyright (c) 2000 NVIDIA Corporation | ||
7 | All rights reserved. | ||
8 | |||
9 | Redistribution and use in source and binary forms, with or | ||
10 | without modification, are permitted provided that the following | ||
11 | conditions are met: | ||
12 | |||
13 | * Redistributions of source code must retain the above | ||
14 | copyright notice, this list of conditions and the following | ||
15 | disclaimer. | ||
16 | |||
17 | * Redistributions in binary form must reproduce the above | ||
18 | copyright notice, this list of conditions and the following | ||
19 | disclaimer in the documentation and/or other materials | ||
20 | provided with the distribution. | ||
21 | |||
22 | * The names of contributors to this software may not be used | ||
23 | to endorse or promote products derived from this software | ||
24 | without specific prior written permission. | ||
25 | |||
26 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | ||
27 | ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | ||
28 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS | ||
29 | FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE | ||
30 | REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, | ||
31 | INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, | ||
32 | BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||
33 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER | ||
34 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
35 | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN | ||
36 | ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | ||
37 | POSSIBILITY OF SUCH DAMAGE. | ||
38 | |||
39 | |||
40 | Cass Everitt - cass@r3.nu | ||
41 | */ | ||
42 | |||
43 | /* | ||
44 | glh_linear.h | ||
45 | */ | ||
46 | |||
47 | // Author: Cass W. Everitt | ||
48 | |||
49 | #ifndef GLH_LINEAR_H | ||
50 | #define GLH_LINEAR_H | ||
51 | |||
52 | #include <memory.h> | ||
53 | #include <math.h> | ||
54 | #include <assert.h> | ||
55 | |||
56 | // only supports float for now... | ||
57 | #define GLH_REAL_IS_FLOAT | ||
58 | |||
59 | #ifdef GLH_REAL_IS_FLOAT | ||
60 | # define GLH_REAL float | ||
61 | # define GLH_REAL_NAMESPACE ns_float | ||
62 | #endif | ||
63 | |||
64 | #define GLH_QUATERNION_NORMALIZATION_THRESHOLD 64 | ||
65 | |||
66 | #define GLH_RAD_TO_DEG GLH_REAL(57.2957795130823208767981548141052) | ||
67 | #define GLH_DEG_TO_RAD GLH_REAL(0.0174532925199432957692369076848861) | ||
68 | #define GLH_ZERO GLH_REAL(0.0) | ||
69 | #define GLH_ONE GLH_REAL(1.0) | ||
70 | #define GLH_TWO GLH_REAL(2.0) | ||
71 | #define GLH_EPSILON GLH_REAL(10e-6) | ||
72 | #define GLH_PI GLH_REAL(3.1415926535897932384626433832795) | ||
73 | |||
74 | #define equivalent(a,b) (((a < b + GLH_EPSILON) && (a > b - GLH_EPSILON)) ? true : false) | ||
75 | |||
76 | namespace glh | ||
77 | { | ||
78 | |||
79 | inline GLH_REAL to_degrees(GLH_REAL radians) { return radians*GLH_RAD_TO_DEG; } | ||
80 | inline GLH_REAL to_radians(GLH_REAL degrees) { return degrees*GLH_DEG_TO_RAD; } | ||
81 | |||
82 | // forward declarations for friend template functions. | ||
83 | template <int N, class T> class vec; | ||
84 | |||
85 | // forward declarations for friend template functions. | ||
86 | template <int N, class T> | ||
87 | bool operator == ( const vec<N,T> & v1, const vec<N,T> & v2 ); | ||
88 | |||
89 | // forward declarations for friend template functions. | ||
90 | template <int N, class T> | ||
91 | bool operator != ( const vec<N,T> & v1, const vec<N,T> & v2 ); | ||
92 | |||
93 | template <int N, class T> | ||
94 | class vec | ||
95 | { | ||
96 | public: | ||
97 | int size() const { return N; } | ||
98 | |||
99 | vec(const T & t = T()) | ||
100 | { for(int i = 0; i < N; i++) v[i] = t; } | ||
101 | vec(const T * tp) | ||
102 | { for(int i = 0; i < N; i++) v[i] = tp[i]; } | ||
103 | |||
104 | const T * get_value() const | ||
105 | { return v; } | ||
106 | |||
107 | |||
108 | T dot( const vec<N,T> & rhs ) const | ||
109 | { | ||
110 | T r = 0; | ||
111 | for(int i = 0; i < N; i++) r += v[i]*rhs.v[i]; | ||
112 | return r; | ||
113 | } | ||
114 | |||
115 | T length() const | ||
116 | { | ||
117 | T r = 0; | ||
118 | for(int i = 0; i < N; i++) r += v[i]*v[i]; | ||
119 | return T(sqrt(r)); | ||
120 | } | ||
121 | |||
122 | T square_norm() const | ||
123 | { | ||
124 | T r = 0; | ||
125 | for(int i = 0; i < N; i++) r += v[i]*v[i]; | ||
126 | return r; | ||
127 | } | ||
128 | |||
129 | void negate() | ||
130 | { for(int i = 0; i < N; i++) v[i] = -v[i]; } | ||
131 | |||
132 | |||
133 | T normalize() | ||
134 | { | ||
135 | T sum(0); | ||
136 | for(int i = 0; i < N; i++) | ||
137 | sum += v[i]*v[i]; | ||
138 | sum = T(sqrt(sum)); | ||
139 | if (sum > GLH_EPSILON) | ||
140 | for(int i = 0; i < N; i++) | ||
141 | v[i] /= sum; | ||
142 | return sum; | ||
143 | } | ||
144 | |||
145 | |||
146 | vec<N,T> & set_value( const T * rhs ) | ||
147 | { for(int i = 0; i < N; i++) v[i] = rhs[i]; return *this; } | ||
148 | |||
149 | T & operator [] ( int i ) | ||
150 | { return v[i]; } | ||
151 | |||
152 | const T & operator [] ( int i ) const | ||
153 | { return v[i]; } | ||
154 | |||
155 | vec<N,T> & operator *= ( T d ) | ||
156 | { for(int i = 0; i < N; i++) v[i] *= d; return *this;} | ||
157 | |||
158 | vec<N,T> & operator *= ( const vec<N,T> & u ) | ||
159 | { for(int i = 0; i < N; i++) v[i] *= u[i]; return *this;} | ||
160 | |||
161 | vec<N,T> & operator /= ( T d ) | ||
162 | { if(d == 0) return *this; for(int i = 0; i < N; i++) v[i] /= d; return *this;} | ||
163 | |||
164 | vec<N,T> & operator += ( const vec<N,T> & u ) | ||
165 | { for(int i = 0; i < N; i++) v[i] += u.v[i]; return *this;} | ||
166 | |||
167 | vec<N,T> & operator -= ( const vec<N,T> & u ) | ||
168 | { for(int i = 0; i < N; i++) v[i] -= u.v[i]; return *this;} | ||
169 | |||
170 | |||
171 | vec<N,T> operator - () const | ||
172 | { vec<N,T> rv = v; rv.negate(); return rv; } | ||
173 | |||
174 | vec<N,T> operator + ( const vec<N,T> &v) const | ||
175 | { vec<N,T> rt(*this); return rt += v; } | ||
176 | |||
177 | vec<N,T> operator - ( const vec<N,T> &v) const | ||
178 | { vec<N,T> rt(*this); return rt -= v; } | ||
179 | |||
180 | vec<N,T> operator * ( T d) const | ||
181 | { vec<N,T> rt(*this); return rt *= d; } | ||
182 | |||
183 | friend bool operator == <> ( const vec<N,T> &v1, const vec<N,T> &v2 ); | ||
184 | friend bool operator != <> ( const vec<N,T> &v1, const vec<N,T> &v2 ); | ||
185 | |||
186 | |||
187 | //protected: | ||
188 | T v[N]; | ||
189 | }; | ||
190 | |||
191 | |||
192 | |||
193 | // vector friend operators | ||
194 | |||
195 | template <int N, class T> inline | ||
196 | vec<N,T> operator * ( const vec<N,T> & b, T d ) | ||
197 | { | ||
198 | vec<N,T> rt(b); | ||
199 | return rt *= d; | ||
200 | } | ||
201 | |||
202 | template <int N, class T> inline | ||
203 | vec<N,T> operator * ( T d, const vec<N,T> & b ) | ||
204 | { return b*d; } | ||
205 | |||
206 | template <int N, class T> inline | ||
207 | vec<N,T> operator * ( const vec<N,T> & b, const vec<N,T> & d ) | ||
208 | { | ||
209 | vec<N,T> rt(b); | ||
210 | return rt *= d; | ||
211 | } | ||
212 | |||
213 | template <int N, class T> inline | ||
214 | vec<N,T> operator / ( const vec<N,T> & b, T d ) | ||
215 | { vec<N,T> rt(b); return rt /= d; } | ||
216 | |||
217 | template <int N, class T> inline | ||
218 | vec<N,T> operator + ( const vec<N,T> & v1, const vec<N,T> & v2 ) | ||
219 | { vec<N,T> rt(v1); return rt += v2; } | ||
220 | |||
221 | template <int N, class T> inline | ||
222 | vec<N,T> operator - ( const vec<N,T> & v1, const vec<N,T> & v2 ) | ||
223 | { vec<N,T> rt(v1); return rt -= v2; } | ||
224 | |||
225 | |||
226 | template <int N, class T> inline | ||
227 | bool operator == ( const vec<N,T> & v1, const vec<N,T> & v2 ) | ||
228 | { | ||
229 | for(int i = 0; i < N; i++) | ||
230 | if(v1.v[i] != v2.v[i]) | ||
231 | return false; | ||
232 | return true; | ||
233 | } | ||
234 | |||
235 | template <int N, class T> inline | ||
236 | bool operator != ( const vec<N,T> & v1, const vec<N,T> & v2 ) | ||
237 | { return !(v1 == v2); } | ||
238 | |||
239 | |||
240 | typedef vec<3,unsigned char> vec3ub; | ||
241 | typedef vec<4,unsigned char> vec4ub; | ||
242 | |||
243 | |||
244 | |||
245 | |||
246 | |||
247 | namespace GLH_REAL_NAMESPACE | ||
248 | { | ||
249 | typedef GLH_REAL real; | ||
250 | |||
251 | class line; | ||
252 | class plane; | ||
253 | class matrix4; | ||
254 | class quaternion; | ||
255 | typedef quaternion rotation; | ||
256 | |||
257 | class vec2 : public vec<2,real> | ||
258 | { | ||
259 | public: | ||
260 | vec2(const real & t = real()) : vec<2,real>(t) | ||
261 | {} | ||
262 | vec2(const vec<2,real> & t) : vec<2,real>(t) | ||
263 | {} | ||
264 | vec2(const real * tp) : vec<2,real>(tp) | ||
265 | {} | ||
266 | |||
267 | vec2(real x, real y ) | ||
268 | { v[0] = x; v[1] = y; } | ||
269 | |||
270 | void get_value(real & x, real & y) const | ||
271 | { x = v[0]; y = v[1]; } | ||
272 | |||
273 | vec2 & set_value( const real & x, const real & y) | ||
274 | { v[0] = x; v[1] = y; return *this; } | ||
275 | |||
276 | }; | ||
277 | |||
278 | |||
279 | class vec3 : public vec<3,real> | ||
280 | { | ||
281 | public: | ||
282 | vec3(const real & t = real()) : vec<3,real>(t) | ||
283 | {} | ||
284 | vec3(const vec<3,real> & t) : vec<3,real>(t) | ||
285 | {} | ||
286 | vec3(const real * tp) : vec<3,real>(tp) | ||
287 | {} | ||
288 | |||
289 | vec3(real x, real y, real z) | ||
290 | { v[0] = x; v[1] = y; v[2] = z; } | ||
291 | |||
292 | void get_value(real & x, real & y, real & z) const | ||
293 | { x = v[0]; y = v[1]; z = v[2]; } | ||
294 | |||
295 | vec3 cross( const vec3 &rhs ) const | ||
296 | { | ||
297 | vec3 rt; | ||
298 | rt.v[0] = v[1]*rhs.v[2]-v[2]*rhs.v[1]; | ||
299 | rt.v[1] = v[2]*rhs.v[0]-v[0]*rhs.v[2]; | ||
300 | rt.v[2] = v[0]*rhs.v[1]-v[1]*rhs.v[0]; | ||
301 | return rt; | ||
302 | } | ||
303 | |||
304 | vec3 & set_value( const real & x, const real & y, const real & z) | ||
305 | { v[0] = x; v[1] = y; v[2] = z; return *this; } | ||
306 | |||
307 | }; | ||
308 | |||
309 | |||
310 | class vec4 : public vec<4,real> | ||
311 | { | ||
312 | public: | ||
313 | vec4(const real & t = real()) : vec<4,real>(t) | ||
314 | {} | ||
315 | vec4(const vec<4,real> & t) : vec<4,real>(t) | ||
316 | {} | ||
317 | |||
318 | vec4(const vec<3,real> & t, real fourth) | ||
319 | |||
320 | { v[0] = t.v[0]; v[1] = t.v[1]; v[2] = t.v[2]; v[3] = fourth; } | ||
321 | vec4(const real * tp) : vec<4,real>(tp) | ||
322 | {} | ||
323 | vec4(real x, real y, real z, real w) | ||
324 | { v[0] = x; v[1] = y; v[2] = z; v[3] = w; } | ||
325 | |||
326 | void get_value(real & x, real & y, real & z, real & w) const | ||
327 | { x = v[0]; y = v[1]; z = v[2]; w = v[3]; } | ||
328 | |||
329 | vec4 & set_value( const real & x, const real & y, const real & z, const real & w) | ||
330 | { v[0] = x; v[1] = y; v[2] = z; v[3] = w; return *this; } | ||
331 | }; | ||
332 | |||
333 | inline | ||
334 | vec3 homogenize(const vec4 & v) | ||
335 | { | ||
336 | vec3 rt; | ||
337 | assert(v.v[3] != GLH_ZERO); | ||
338 | rt.v[0] = v.v[0]/v.v[3]; | ||
339 | rt.v[1] = v.v[1]/v.v[3]; | ||
340 | rt.v[2] = v.v[2]/v.v[3]; | ||
341 | return rt; | ||
342 | } | ||
343 | |||
344 | |||
345 | |||
346 | class line | ||
347 | { | ||
348 | public: | ||
349 | |||
350 | line() | ||
351 | { set_value(vec3(0,0,0),vec3(0,0,1)); } | ||
352 | |||
353 | line( const vec3 & p0, const vec3 &p1) | ||
354 | { set_value(p0,p1); } | ||
355 | |||
356 | void set_value( const vec3 &p0, const vec3 &p1) | ||
357 | { | ||
358 | position = p0; | ||
359 | direction = p1-p0; | ||
360 | direction.normalize(); | ||
361 | } | ||
362 | |||
363 | bool get_closest_points(const line &line2, | ||
364 | vec3 &pointOnThis, | ||
365 | vec3 &pointOnThat) | ||
366 | { | ||
367 | |||
368 | // quick check to see if parallel -- if so, quit. | ||
369 | if(fabs(direction.dot(line2.direction)) == 1.0) | ||
370 | return 0; | ||
371 | line l2 = line2; | ||
372 | |||
373 | // Algorithm: Brian Jean | ||
374 | // | ||
375 | register real u; | ||
376 | register real v; | ||
377 | vec3 Vr = direction; | ||
378 | vec3 Vs = l2.direction; | ||
379 | register real Vr_Dot_Vs = Vr.dot(Vs); | ||
380 | register real detA = real(1.0 - (Vr_Dot_Vs * Vr_Dot_Vs)); | ||
381 | vec3 C = l2.position - position; | ||
382 | register real C_Dot_Vr = C.dot(Vr); | ||
383 | register real C_Dot_Vs = C.dot(Vs); | ||
384 | |||
385 | u = (C_Dot_Vr - Vr_Dot_Vs * C_Dot_Vs)/detA; | ||
386 | v = (C_Dot_Vr * Vr_Dot_Vs - C_Dot_Vs)/detA; | ||
387 | |||
388 | pointOnThis = position; | ||
389 | pointOnThis += direction * u; | ||
390 | pointOnThat = l2.position; | ||
391 | pointOnThat += l2.direction * v; | ||
392 | |||
393 | return 1; | ||
394 | } | ||
395 | |||
396 | vec3 get_closest_point(const vec3 &point) | ||
397 | { | ||
398 | vec3 np = point - position; | ||
399 | vec3 rp = direction*direction.dot(np)+position; | ||
400 | return rp; | ||
401 | } | ||
402 | |||
403 | const vec3 & get_position() const {return position;} | ||
404 | |||
405 | const vec3 & get_direction() const {return direction;} | ||
406 | |||
407 | //protected: | ||
408 | vec3 position; | ||
409 | vec3 direction; | ||
410 | }; | ||
411 | |||
412 | |||
413 | |||
414 | |||
415 | |||
416 | |||
417 | |||
418 | |||
419 | |||
420 | |||
421 | |||
422 | |||
423 | |||
424 | |||
425 | |||
426 | |||
427 | |||
428 | |||
429 | |||
430 | |||
431 | |||
432 | |||
433 | |||
434 | |||
435 | |||
436 | |||
437 | |||
438 | |||
439 | |||
440 | // matrix | ||
441 | |||
442 | |||
443 | class matrix4 | ||
444 | { | ||
445 | |||
446 | public: | ||
447 | |||
448 | matrix4() { make_identity(); } | ||
449 | |||
450 | matrix4( real r ) | ||
451 | { set_value(r); } | ||
452 | |||
453 | matrix4( real * m ) | ||
454 | { set_value(m); } | ||
455 | |||
456 | matrix4( real a00, real a01, real a02, real a03, | ||
457 | real a10, real a11, real a12, real a13, | ||
458 | real a20, real a21, real a22, real a23, | ||
459 | real a30, real a31, real a32, real a33 ) | ||
460 | { | ||
461 | element(0,0) = a00; | ||
462 | element(0,1) = a01; | ||
463 | element(0,2) = a02; | ||
464 | element(0,3) = a03; | ||
465 | |||
466 | element(1,0) = a10; | ||
467 | element(1,1) = a11; | ||
468 | element(1,2) = a12; | ||
469 | element(1,3) = a13; | ||
470 | |||
471 | element(2,0) = a20; | ||
472 | element(2,1) = a21; | ||
473 | element(2,2) = a22; | ||
474 | element(2,3) = a23; | ||
475 | |||
476 | element(3,0) = a30; | ||
477 | element(3,1) = a31; | ||
478 | element(3,2) = a32; | ||
479 | element(3,3) = a33; | ||
480 | } | ||
481 | |||
482 | |||
483 | void get_value( real * mp ) const | ||
484 | { | ||
485 | int c = 0; | ||
486 | for(int j=0; j < 4; j++) | ||
487 | for(int i=0; i < 4; i++) | ||
488 | mp[c++] = element(i,j); | ||
489 | } | ||
490 | |||
491 | |||
492 | const real * get_value() const | ||
493 | { return m; } | ||
494 | |||
495 | void set_value( real * mp) | ||
496 | { | ||
497 | int c = 0; | ||
498 | for(int j=0; j < 4; j++) | ||
499 | for(int i=0; i < 4; i++) | ||
500 | element(i,j) = mp[c++]; | ||
501 | } | ||
502 | |||
503 | void set_value( real r ) | ||
504 | { | ||
505 | for(int i=0; i < 4; i++) | ||
506 | for(int j=0; j < 4; j++) | ||
507 | element(i,j) = r; | ||
508 | } | ||
509 | |||
510 | void make_identity() | ||
511 | { | ||
512 | element(0,0) = 1.0; | ||
513 | element(0,1) = 0.0; | ||
514 | element(0,2) = 0.0; | ||
515 | element(0,3) = 0.0; | ||
516 | |||
517 | element(1,0) = 0.0; | ||
518 | element(1,1) = 1.0; | ||
519 | element(1,2) = 0.0; | ||
520 | element(1,3) = 0.0; | ||
521 | |||
522 | element(2,0) = 0.0; | ||
523 | element(2,1) = 0.0; | ||
524 | element(2,2) = 1.0; | ||
525 | element(2,3) = 0.0; | ||
526 | |||
527 | element(3,0) = 0.0; | ||
528 | element(3,1) = 0.0; | ||
529 | element(3,2) = 0.0; | ||
530 | element(3,3) = 1.0; | ||
531 | } | ||
532 | |||
533 | |||
534 | static matrix4 identity() | ||
535 | { | ||
536 | static matrix4 mident ( | ||
537 | 1.0, 0.0, 0.0, 0.0, | ||
538 | 0.0, 1.0, 0.0, 0.0, | ||
539 | 0.0, 0.0, 1.0, 0.0, | ||
540 | 0.0, 0.0, 0.0, 1.0 ); | ||
541 | return mident; | ||
542 | } | ||
543 | |||
544 | |||
545 | void set_scale( real s ) | ||
546 | { | ||
547 | element(0,0) = s; | ||
548 | element(1,1) = s; | ||
549 | element(2,2) = s; | ||
550 | } | ||
551 | |||
552 | void set_scale( const vec3 & s ) | ||
553 | { | ||
554 | element(0,0) = s.v[0]; | ||
555 | element(1,1) = s.v[1]; | ||
556 | element(2,2) = s.v[2]; | ||
557 | } | ||
558 | |||
559 | |||
560 | void set_translate( const vec3 & t ) | ||
561 | { | ||
562 | element(0,3) = t.v[0]; | ||
563 | element(1,3) = t.v[1]; | ||
564 | element(2,3) = t.v[2]; | ||
565 | } | ||
566 | |||
567 | void set_row(int r, const vec4 & t) | ||
568 | { | ||
569 | element(r,0) = t.v[0]; | ||
570 | element(r,1) = t.v[1]; | ||
571 | element(r,2) = t.v[2]; | ||
572 | element(r,3) = t.v[3]; | ||
573 | } | ||
574 | |||
575 | void set_column(int c, const vec4 & t) | ||
576 | { | ||
577 | element(0,c) = t.v[0]; | ||
578 | element(1,c) = t.v[1]; | ||
579 | element(2,c) = t.v[2]; | ||
580 | element(3,c) = t.v[3]; | ||
581 | } | ||
582 | |||
583 | |||
584 | void get_row(int r, vec4 & t) const | ||
585 | { | ||
586 | t.v[0] = element(r,0); | ||
587 | t.v[1] = element(r,1); | ||
588 | t.v[2] = element(r,2); | ||
589 | t.v[3] = element(r,3); | ||
590 | } | ||
591 | |||
592 | vec4 get_row(int r) const | ||
593 | { | ||
594 | vec4 v; get_row(r, v); | ||
595 | return v; | ||
596 | } | ||
597 | |||
598 | void get_column(int c, vec4 & t) const | ||
599 | { | ||
600 | t.v[0] = element(0,c); | ||
601 | t.v[1] = element(1,c); | ||
602 | t.v[2] = element(2,c); | ||
603 | t.v[3] = element(3,c); | ||
604 | } | ||
605 | |||
606 | vec4 get_column(int c) const | ||
607 | { | ||
608 | vec4 v; get_column(c, v); | ||
609 | return v; | ||
610 | } | ||
611 | |||
612 | matrix4 inverse() const | ||
613 | { | ||
614 | matrix4 minv; | ||
615 | |||
616 | real r1[8], r2[8], r3[8], r4[8]; | ||
617 | real *s[4], *tmprow; | ||
618 | |||
619 | s[0] = &r1[0]; | ||
620 | s[1] = &r2[0]; | ||
621 | s[2] = &r3[0]; | ||
622 | s[3] = &r4[0]; | ||
623 | |||
624 | register int i,j,p,jj; | ||
625 | for(i=0;i<4;i++) | ||
626 | { | ||
627 | for(j=0;j<4;j++) | ||
628 | { | ||
629 | s[i][j] = element(i,j); | ||
630 | if(i==j) s[i][j+4] = 1.0; | ||
631 | else s[i][j+4] = 0.0; | ||
632 | } | ||
633 | } | ||
634 | real scp[4]; | ||
635 | for(i=0;i<4;i++) | ||
636 | { | ||
637 | scp[i] = real(fabs(s[i][0])); | ||
638 | for(j=1;j<4;j++) | ||
639 | if(real(fabs(s[i][j])) > scp[i]) scp[i] = real(fabs(s[i][j])); | ||
640 | if(scp[i] == 0.0) return minv; // singular matrix! | ||
641 | } | ||
642 | |||
643 | int pivot_to; | ||
644 | real scp_max; | ||
645 | for(i=0;i<4;i++) | ||
646 | { | ||
647 | // select pivot row | ||
648 | pivot_to = i; | ||
649 | scp_max = real(fabs(s[i][i]/scp[i])); | ||
650 | // find out which row should be on top | ||
651 | for(p=i+1;p<4;p++) | ||
652 | if(real(fabs(s[p][i]/scp[p])) > scp_max) | ||
653 | { scp_max = real(fabs(s[p][i]/scp[p])); pivot_to = p; } | ||
654 | // Pivot if necessary | ||
655 | if(pivot_to != i) | ||
656 | { | ||
657 | tmprow = s[i]; | ||
658 | s[i] = s[pivot_to]; | ||
659 | s[pivot_to] = tmprow; | ||
660 | real tmpscp; | ||
661 | tmpscp = scp[i]; | ||
662 | scp[i] = scp[pivot_to]; | ||
663 | scp[pivot_to] = tmpscp; | ||
664 | } | ||
665 | |||
666 | real mji; | ||
667 | // perform gaussian elimination | ||
668 | for(j=i+1;j<4;j++) | ||
669 | { | ||
670 | mji = s[j][i]/s[i][i]; | ||
671 | s[j][i] = 0.0; | ||
672 | for(jj=i+1;jj<8;jj++) | ||
673 | s[j][jj] -= mji*s[i][jj]; | ||
674 | } | ||
675 | } | ||
676 | if(s[3][3] == 0.0) return minv; // singular matrix! | ||
677 | |||
678 | // | ||
679 | // Now we have an upper triangular matrix. | ||
680 | // | ||
681 | // x x x x | y y y y | ||
682 | // 0 x x x | y y y y | ||
683 | // 0 0 x x | y y y y | ||
684 | // 0 0 0 x | y y y y | ||
685 | // | ||
686 | // we'll back substitute to get the inverse | ||
687 | // | ||
688 | // 1 0 0 0 | z z z z | ||
689 | // 0 1 0 0 | z z z z | ||
690 | // 0 0 1 0 | z z z z | ||
691 | // 0 0 0 1 | z z z z | ||
692 | // | ||
693 | |||
694 | real mij; | ||
695 | for(i=3;i>0;i--) | ||
696 | { | ||
697 | for(j=i-1;j > -1; j--) | ||
698 | { | ||
699 | mij = s[j][i]/s[i][i]; | ||
700 | for(jj=j+1;jj<8;jj++) | ||
701 | s[j][jj] -= mij*s[i][jj]; | ||
702 | } | ||
703 | } | ||
704 | |||
705 | for(i=0;i<4;i++) | ||
706 | for(j=0;j<4;j++) | ||
707 | minv(i,j) = s[i][j+4] / s[i][i]; | ||
708 | |||
709 | return minv; | ||
710 | } | ||
711 | |||
712 | |||
713 | matrix4 transpose() const | ||
714 | { | ||
715 | matrix4 mtrans; | ||
716 | |||
717 | for(int i=0;i<4;i++) | ||
718 | for(int j=0;j<4;j++) | ||
719 | mtrans(i,j) = element(j,i); | ||
720 | return mtrans; | ||
721 | } | ||
722 | |||
723 | matrix4 & mult_right( const matrix4 & b ) | ||
724 | { | ||
725 | matrix4 mt(*this); | ||
726 | set_value(real(0)); | ||
727 | |||
728 | for(int i=0; i < 4; i++) | ||
729 | for(int j=0; j < 4; j++) | ||
730 | for(int c=0; c < 4; c++) | ||
731 | element(i,j) += mt(i,c) * b(c,j); | ||
732 | return *this; | ||
733 | } | ||
734 | |||
735 | matrix4 & mult_left( const matrix4 & b ) | ||
736 | { | ||
737 | matrix4 mt(*this); | ||
738 | set_value(real(0)); | ||
739 | |||
740 | for(int i=0; i < 4; i++) | ||
741 | for(int j=0; j < 4; j++) | ||
742 | for(int c=0; c < 4; c++) | ||
743 | element(i,j) += b(i,c) * mt(c,j); | ||
744 | return *this; | ||
745 | } | ||
746 | |||
747 | // dst = M * src | ||
748 | void mult_matrix_vec( const vec3 &src, vec3 &dst ) const | ||
749 | { | ||
750 | real w = ( | ||
751 | src.v[0] * element(3,0) + | ||
752 | src.v[1] * element(3,1) + | ||
753 | src.v[2] * element(3,2) + | ||
754 | element(3,3) ); | ||
755 | |||
756 | assert(w != GLH_ZERO); | ||
757 | |||
758 | dst.v[0] = ( | ||
759 | src.v[0] * element(0,0) + | ||
760 | src.v[1] * element(0,1) + | ||
761 | src.v[2] * element(0,2) + | ||
762 | element(0,3) ) / w; | ||
763 | dst.v[1] = ( | ||
764 | src.v[0] * element(1,0) + | ||
765 | src.v[1] * element(1,1) + | ||
766 | src.v[2] * element(1,2) + | ||
767 | element(1,3) ) / w; | ||
768 | dst.v[2] = ( | ||
769 | src.v[0] * element(2,0) + | ||
770 | src.v[1] * element(2,1) + | ||
771 | src.v[2] * element(2,2) + | ||
772 | element(2,3) ) / w; | ||
773 | } | ||
774 | |||
775 | void mult_matrix_vec( vec3 & src_and_dst) const | ||
776 | { mult_matrix_vec(vec3(src_and_dst), src_and_dst); } | ||
777 | |||
778 | |||
779 | // dst = src * M | ||
780 | void mult_vec_matrix( const vec3 &src, vec3 &dst ) const | ||
781 | { | ||
782 | real w = ( | ||
783 | src.v[0] * element(0,3) + | ||
784 | src.v[1] * element(1,3) + | ||
785 | src.v[2] * element(2,3) + | ||
786 | element(3,3) ); | ||
787 | |||
788 | assert(w != GLH_ZERO); | ||
789 | |||
790 | dst.v[0] = ( | ||
791 | src.v[0] * element(0,0) + | ||
792 | src.v[1] * element(1,0) + | ||
793 | src.v[2] * element(2,0) + | ||
794 | element(3,0) ) / w; | ||
795 | dst.v[1] = ( | ||
796 | src.v[0] * element(0,1) + | ||
797 | src.v[1] * element(1,1) + | ||
798 | src.v[2] * element(2,1) + | ||
799 | element(3,1) ) / w; | ||
800 | dst.v[2] = ( | ||
801 | src.v[0] * element(0,2) + | ||
802 | src.v[1] * element(1,2) + | ||
803 | src.v[2] * element(2,2) + | ||
804 | element(3,2) ) / w; | ||
805 | } | ||
806 | |||
807 | |||
808 | void mult_vec_matrix( vec3 & src_and_dst) const | ||
809 | { mult_vec_matrix(vec3(src_and_dst), src_and_dst); } | ||
810 | |||
811 | // dst = M * src | ||
812 | void mult_matrix_vec( const vec4 &src, vec4 &dst ) const | ||
813 | { | ||
814 | dst.v[0] = ( | ||
815 | src.v[0] * element(0,0) + | ||
816 | src.v[1] * element(0,1) + | ||
817 | src.v[2] * element(0,2) + | ||
818 | src.v[3] * element(0,3)); | ||
819 | dst.v[1] = ( | ||
820 | src.v[0] * element(1,0) + | ||
821 | src.v[1] * element(1,1) + | ||
822 | src.v[2] * element(1,2) + | ||
823 | src.v[3] * element(1,3)); | ||
824 | dst.v[2] = ( | ||
825 | src.v[0] * element(2,0) + | ||
826 | src.v[1] * element(2,1) + | ||
827 | src.v[2] * element(2,2) + | ||
828 | src.v[3] * element(2,3)); | ||
829 | dst.v[3] = ( | ||
830 | src.v[0] * element(3,0) + | ||
831 | src.v[1] * element(3,1) + | ||
832 | src.v[2] * element(3,2) + | ||
833 | src.v[3] * element(3,3)); | ||
834 | } | ||
835 | |||
836 | void mult_matrix_vec( vec4 & src_and_dst) const | ||
837 | { mult_matrix_vec(vec4(src_and_dst), src_and_dst); } | ||
838 | |||
839 | |||
840 | // dst = src * M | ||
841 | void mult_vec_matrix( const vec4 &src, vec4 &dst ) const | ||
842 | { | ||
843 | dst.v[0] = ( | ||
844 | src.v[0] * element(0,0) + | ||
845 | src.v[1] * element(1,0) + | ||
846 | src.v[2] * element(2,0) + | ||
847 | src.v[3] * element(3,0)); | ||
848 | dst.v[1] = ( | ||
849 | src.v[0] * element(0,1) + | ||
850 | src.v[1] * element(1,1) + | ||
851 | src.v[2] * element(2,1) + | ||
852 | src.v[3] * element(3,1)); | ||
853 | dst.v[2] = ( | ||
854 | src.v[0] * element(0,2) + | ||
855 | src.v[1] * element(1,2) + | ||
856 | src.v[2] * element(2,2) + | ||
857 | src.v[3] * element(3,2)); | ||
858 | dst.v[3] = ( | ||
859 | src.v[0] * element(0,3) + | ||
860 | src.v[1] * element(1,3) + | ||
861 | src.v[2] * element(2,3) + | ||
862 | src.v[3] * element(3,3)); | ||
863 | } | ||
864 | |||
865 | |||
866 | void mult_vec_matrix( vec4 & src_and_dst) const | ||
867 | { mult_vec_matrix(vec4(src_and_dst), src_and_dst); } | ||
868 | |||
869 | |||
870 | // dst = M * src | ||
871 | void mult_matrix_dir( const vec3 &src, vec3 &dst ) const | ||
872 | { | ||
873 | dst.v[0] = ( | ||
874 | src.v[0] * element(0,0) + | ||
875 | src.v[1] * element(0,1) + | ||
876 | src.v[2] * element(0,2) ) ; | ||
877 | dst.v[1] = ( | ||
878 | src.v[0] * element(1,0) + | ||
879 | src.v[1] * element(1,1) + | ||
880 | src.v[2] * element(1,2) ) ; | ||
881 | dst.v[2] = ( | ||
882 | src.v[0] * element(2,0) + | ||
883 | src.v[1] * element(2,1) + | ||
884 | src.v[2] * element(2,2) ) ; | ||
885 | } | ||
886 | |||
887 | |||
888 | void mult_matrix_dir( vec3 & src_and_dst) const | ||
889 | { mult_matrix_dir(vec3(src_and_dst), src_and_dst); } | ||
890 | |||
891 | |||
892 | // dst = src * M | ||
893 | void mult_dir_matrix( const vec3 &src, vec3 &dst ) const | ||
894 | { | ||
895 | dst.v[0] = ( | ||
896 | src.v[0] * element(0,0) + | ||
897 | src.v[1] * element(1,0) + | ||
898 | src.v[2] * element(2,0) ) ; | ||
899 | dst.v[1] = ( | ||
900 | src.v[0] * element(0,1) + | ||
901 | src.v[1] * element(1,1) + | ||
902 | src.v[2] * element(2,1) ) ; | ||
903 | dst.v[2] = ( | ||
904 | src.v[0] * element(0,2) + | ||
905 | src.v[1] * element(1,2) + | ||
906 | src.v[2] * element(2,2) ) ; | ||
907 | } | ||
908 | |||
909 | |||
910 | void mult_dir_matrix( vec3 & src_and_dst) const | ||
911 | { mult_dir_matrix(vec3(src_and_dst), src_and_dst); } | ||
912 | |||
913 | |||
914 | real & operator () (int row, int col) | ||
915 | { return element(row,col); } | ||
916 | |||
917 | const real & operator () (int row, int col) const | ||
918 | { return element(row,col); } | ||
919 | |||
920 | real & element (int row, int col) | ||
921 | { return m[row | (col<<2)]; } | ||
922 | |||
923 | const real & element (int row, int col) const | ||
924 | { return m[row | (col<<2)]; } | ||
925 | |||
926 | matrix4 & operator *= ( const matrix4 & mat ) | ||
927 | { | ||
928 | mult_right( mat ); | ||
929 | return *this; | ||
930 | } | ||
931 | |||
932 | matrix4 & operator *= ( const real & r ) | ||
933 | { | ||
934 | for (int i = 0; i < 4; ++i) | ||
935 | { | ||
936 | element(0,i) *= r; | ||
937 | element(1,i) *= r; | ||
938 | element(2,i) *= r; | ||
939 | element(3,i) *= r; | ||
940 | } | ||
941 | return *this; | ||
942 | } | ||
943 | |||
944 | matrix4 & operator += ( const matrix4 & mat ) | ||
945 | { | ||
946 | for (int i = 0; i < 4; ++i) | ||
947 | { | ||
948 | element(0,i) += mat.element(0,i); | ||
949 | element(1,i) += mat.element(1,i); | ||
950 | element(2,i) += mat.element(2,i); | ||
951 | element(3,i) += mat.element(3,i); | ||
952 | } | ||
953 | return *this; | ||
954 | } | ||
955 | |||
956 | friend matrix4 operator * ( const matrix4 & m1, const matrix4 & m2 ); | ||
957 | friend bool operator == ( const matrix4 & m1, const matrix4 & m2 ); | ||
958 | friend bool operator != ( const matrix4 & m1, const matrix4 & m2 ); | ||
959 | |||
960 | //protected: | ||
961 | real m[16]; | ||
962 | }; | ||
963 | |||
964 | inline | ||
965 | matrix4 operator * ( const matrix4 & m1, const matrix4 & m2 ) | ||
966 | { | ||
967 | matrix4 product; | ||
968 | |||
969 | product = m1; | ||
970 | product.mult_right(m2); | ||
971 | |||
972 | return product; | ||
973 | } | ||
974 | |||
975 | inline | ||
976 | bool operator ==( const matrix4 &m1, const matrix4 &m2 ) | ||
977 | { | ||
978 | return ( | ||
979 | m1(0,0) == m2(0,0) && | ||
980 | m1(0,1) == m2(0,1) && | ||
981 | m1(0,2) == m2(0,2) && | ||
982 | m1(0,3) == m2(0,3) && | ||
983 | m1(1,0) == m2(1,0) && | ||
984 | m1(1,1) == m2(1,1) && | ||
985 | m1(1,2) == m2(1,2) && | ||
986 | m1(1,3) == m2(1,3) && | ||
987 | m1(2,0) == m2(2,0) && | ||
988 | m1(2,1) == m2(2,1) && | ||
989 | m1(2,2) == m2(2,2) && | ||
990 | m1(2,3) == m2(2,3) && | ||
991 | m1(3,0) == m2(3,0) && | ||
992 | m1(3,1) == m2(3,1) && | ||
993 | m1(3,2) == m2(3,2) && | ||
994 | m1(3,3) == m2(3,3) ); | ||
995 | } | ||
996 | |||
997 | inline | ||
998 | bool operator != ( const matrix4 & m1, const matrix4 & m2 ) | ||
999 | { return !( m1 == m2 ); } | ||
1000 | |||
1001 | |||
1002 | |||
1003 | |||
1004 | |||
1005 | |||
1006 | |||
1007 | |||
1008 | |||
1009 | |||
1010 | |||
1011 | |||
1012 | |||
1013 | class quaternion | ||
1014 | { | ||
1015 | public: | ||
1016 | |||
1017 | quaternion() | ||
1018 | { | ||
1019 | *this = identity(); | ||
1020 | } | ||
1021 | |||
1022 | quaternion( const real v[4] ) | ||
1023 | { | ||
1024 | set_value( v ); | ||
1025 | } | ||
1026 | |||
1027 | |||
1028 | quaternion( real q0, real q1, real q2, real q3 ) | ||
1029 | { | ||
1030 | set_value( q0, q1, q2, q3 ); | ||
1031 | } | ||
1032 | |||
1033 | |||
1034 | quaternion( const matrix4 & m ) | ||
1035 | { | ||
1036 | set_value( m ); | ||
1037 | } | ||
1038 | |||
1039 | |||
1040 | quaternion( const vec3 &axis, real radians ) | ||
1041 | { | ||
1042 | set_value( axis, radians ); | ||
1043 | } | ||
1044 | |||
1045 | |||
1046 | quaternion( const vec3 &rotateFrom, const vec3 &rotateTo ) | ||
1047 | { | ||
1048 | set_value( rotateFrom, rotateTo ); | ||
1049 | } | ||
1050 | |||
1051 | quaternion( const vec3 & from_look, const vec3 & from_up, | ||
1052 | const vec3 & to_look, const vec3& to_up) | ||
1053 | { | ||
1054 | set_value(from_look, from_up, to_look, to_up); | ||
1055 | } | ||
1056 | |||
1057 | const real * get_value() const | ||
1058 | { | ||
1059 | return &q[0]; | ||
1060 | } | ||
1061 | |||
1062 | void get_value( real &q0, real &q1, real &q2, real &q3 ) const | ||
1063 | { | ||
1064 | q0 = q[0]; | ||
1065 | q1 = q[1]; | ||
1066 | q2 = q[2]; | ||
1067 | q3 = q[3]; | ||
1068 | } | ||
1069 | |||
1070 | quaternion & set_value( real q0, real q1, real q2, real q3 ) | ||
1071 | { | ||
1072 | q[0] = q0; | ||
1073 | q[1] = q1; | ||
1074 | q[2] = q2; | ||
1075 | q[3] = q3; | ||
1076 | counter = 0; | ||
1077 | return *this; | ||
1078 | } | ||
1079 | |||
1080 | void get_value( vec3 &axis, real &radians ) const | ||
1081 | { | ||
1082 | radians = real(acos( q[3] ) * GLH_TWO); | ||
1083 | if ( radians == GLH_ZERO ) | ||
1084 | axis = vec3( 0.0, 0.0, 1.0 ); | ||
1085 | else | ||
1086 | { | ||
1087 | axis.v[0] = q[0]; | ||
1088 | axis.v[1] = q[1]; | ||
1089 | axis.v[2] = q[2]; | ||
1090 | axis.normalize(); | ||
1091 | } | ||
1092 | } | ||
1093 | |||
1094 | void get_value( matrix4 & m ) const | ||
1095 | { | ||
1096 | real s, xs, ys, zs, wx, wy, wz, xx, xy, xz, yy, yz, zz; | ||
1097 | |||
1098 | real norm = q[0] * q[0] + q[1] * q[1] + q[2] * q[2] + q[3] * q[3]; | ||
1099 | |||
1100 | s = (equivalent(norm,GLH_ZERO)) ? GLH_ZERO : ( GLH_TWO / norm ); | ||
1101 | |||
1102 | xs = q[0] * s; | ||
1103 | ys = q[1] * s; | ||
1104 | zs = q[2] * s; | ||
1105 | |||
1106 | wx = q[3] * xs; | ||
1107 | wy = q[3] * ys; | ||
1108 | wz = q[3] * zs; | ||
1109 | |||
1110 | xx = q[0] * xs; | ||
1111 | xy = q[0] * ys; | ||
1112 | xz = q[0] * zs; | ||
1113 | |||
1114 | yy = q[1] * ys; | ||
1115 | yz = q[1] * zs; | ||
1116 | zz = q[2] * zs; | ||
1117 | |||
1118 | m(0,0) = real( GLH_ONE - ( yy + zz )); | ||
1119 | m(1,0) = real ( xy + wz ); | ||
1120 | m(2,0) = real ( xz - wy ); | ||
1121 | |||
1122 | m(0,1) = real ( xy - wz ); | ||
1123 | m(1,1) = real ( GLH_ONE - ( xx + zz )); | ||
1124 | m(2,1) = real ( yz + wx ); | ||
1125 | |||
1126 | m(0,2) = real ( xz + wy ); | ||
1127 | m(1,2) = real ( yz - wx ); | ||
1128 | m(2,2) = real ( GLH_ONE - ( xx + yy )); | ||
1129 | |||
1130 | m(3,0) = m(3,1) = m(3,2) = m(0,3) = m(1,3) = m(2,3) = GLH_ZERO; | ||
1131 | m(3,3) = GLH_ONE; | ||
1132 | } | ||
1133 | |||
1134 | quaternion & set_value( const real * qp ) | ||
1135 | { | ||
1136 | memcpy(q,qp,sizeof(real) * 4); | ||
1137 | |||
1138 | counter = 0; | ||
1139 | return *this; | ||
1140 | } | ||
1141 | |||
1142 | quaternion & set_value( const matrix4 & m ) | ||
1143 | { | ||
1144 | real tr, s; | ||
1145 | int i, j, k; | ||
1146 | const int nxt[3] = { 1, 2, 0 }; | ||
1147 | |||
1148 | tr = m(0,0) + m(1,1) + m(2,2); | ||
1149 | |||
1150 | if ( tr > GLH_ZERO ) | ||
1151 | { | ||
1152 | s = real(sqrt( tr + m(3,3) )); | ||
1153 | q[3] = real ( s * 0.5 ); | ||
1154 | s = real(0.5) / s; | ||
1155 | |||
1156 | q[0] = real ( ( m(1,2) - m(2,1) ) * s ); | ||
1157 | q[1] = real ( ( m(2,0) - m(0,2) ) * s ); | ||
1158 | q[2] = real ( ( m(0,1) - m(1,0) ) * s ); | ||
1159 | } | ||
1160 | else | ||
1161 | { | ||
1162 | i = 0; | ||
1163 | if ( m(1,1) > m(0,0) ) | ||
1164 | i = 1; | ||
1165 | |||
1166 | if ( m(2,2) > m(i,i) ) | ||
1167 | i = 2; | ||
1168 | |||
1169 | j = nxt[i]; | ||
1170 | k = nxt[j]; | ||
1171 | |||
1172 | s = real(sqrt( ( m(i,j) - ( m(j,j) + m(k,k) )) + GLH_ONE )); | ||
1173 | |||
1174 | q[i] = real ( s * 0.5 ); | ||
1175 | s = real(0.5 / s); | ||
1176 | |||
1177 | q[3] = real ( ( m(j,k) - m(k,j) ) * s ); | ||
1178 | q[j] = real ( ( m(i,j) + m(j,i) ) * s ); | ||
1179 | q[k] = real ( ( m(i,k) + m(k,i) ) * s ); | ||
1180 | } | ||
1181 | |||
1182 | counter = 0; | ||
1183 | return *this; | ||
1184 | } | ||
1185 | |||
1186 | quaternion & set_value( const vec3 &axis, real theta ) | ||
1187 | { | ||
1188 | real sqnorm = axis.square_norm(); | ||
1189 | |||
1190 | if (sqnorm <= GLH_EPSILON) | ||
1191 | { | ||
1192 | // axis too small. | ||
1193 | x = y = z = 0.0; | ||
1194 | w = 1.0; | ||
1195 | } | ||
1196 | else | ||
1197 | { | ||
1198 | theta *= real(0.5); | ||
1199 | real sin_theta = real(sin(theta)); | ||
1200 | |||
1201 | if (!equivalent(sqnorm,GLH_ONE)) | ||
1202 | sin_theta /= real(sqrt(sqnorm)); | ||
1203 | x = sin_theta * axis.v[0]; | ||
1204 | y = sin_theta * axis.v[1]; | ||
1205 | z = sin_theta * axis.v[2]; | ||
1206 | w = real(cos(theta)); | ||
1207 | } | ||
1208 | return *this; | ||
1209 | } | ||
1210 | |||
1211 | quaternion & set_value( const vec3 & rotateFrom, const vec3 & rotateTo ) | ||
1212 | { | ||
1213 | vec3 p1, p2; | ||
1214 | real alpha; | ||
1215 | |||
1216 | p1 = rotateFrom; | ||
1217 | p1.normalize(); | ||
1218 | p2 = rotateTo; | ||
1219 | p2.normalize(); | ||
1220 | |||
1221 | alpha = p1.dot(p2); | ||
1222 | |||
1223 | if(equivalent(alpha,GLH_ONE)) | ||
1224 | { | ||
1225 | *this = identity(); | ||
1226 | return *this; | ||
1227 | } | ||
1228 | |||
1229 | // ensures that the anti-parallel case leads to a positive dot | ||
1230 | if(equivalent(alpha,-GLH_ONE)) | ||
1231 | { | ||
1232 | vec3 v; | ||
1233 | |||
1234 | if(p1.v[0] != p1.v[1] || p1.v[0] != p1.v[2]) | ||
1235 | v = vec3(p1.v[1], p1.v[2], p1.v[0]); | ||
1236 | else | ||
1237 | v = vec3(-p1.v[0], p1.v[1], p1.v[2]); | ||
1238 | |||
1239 | v -= p1 * p1.dot(v); | ||
1240 | v.normalize(); | ||
1241 | |||
1242 | set_value(v, GLH_PI); | ||
1243 | return *this; | ||
1244 | } | ||
1245 | |||
1246 | p1 = p1.cross(p2); | ||
1247 | p1.normalize(); | ||
1248 | set_value(p1,real(acos(alpha))); | ||
1249 | |||
1250 | counter = 0; | ||
1251 | return *this; | ||
1252 | } | ||
1253 | |||
1254 | quaternion & set_value( const vec3 & from_look, const vec3 & from_up, | ||
1255 | const vec3 & to_look, const vec3 & to_up) | ||
1256 | { | ||
1257 | quaternion r_look = quaternion(from_look, to_look); | ||
1258 | |||
1259 | vec3 rotated_from_up(from_up); | ||
1260 | r_look.mult_vec(rotated_from_up); | ||
1261 | |||
1262 | quaternion r_twist = quaternion(rotated_from_up, to_up); | ||
1263 | |||
1264 | *this = r_twist; | ||
1265 | *this *= r_look; | ||
1266 | return *this; | ||
1267 | } | ||
1268 | |||
1269 | quaternion & operator *= ( const quaternion & qr ) | ||
1270 | { | ||
1271 | quaternion ql(*this); | ||
1272 | |||
1273 | w = ql.w * qr.w - ql.x * qr.x - ql.y * qr.y - ql.z * qr.z; | ||
1274 | x = ql.w * qr.x + ql.x * qr.w + ql.y * qr.z - ql.z * qr.y; | ||
1275 | y = ql.w * qr.y + ql.y * qr.w + ql.z * qr.x - ql.x * qr.z; | ||
1276 | z = ql.w * qr.z + ql.z * qr.w + ql.x * qr.y - ql.y * qr.x; | ||
1277 | |||
1278 | counter += qr.counter; | ||
1279 | counter++; | ||
1280 | counter_normalize(); | ||
1281 | return *this; | ||
1282 | } | ||
1283 | |||
1284 | void normalize() | ||
1285 | { | ||
1286 | real rnorm = GLH_ONE / real(sqrt(w * w + x * x + y * y + z * z)); | ||
1287 | if (equivalent(rnorm, GLH_ZERO)) | ||
1288 | return; | ||
1289 | x *= rnorm; | ||
1290 | y *= rnorm; | ||
1291 | z *= rnorm; | ||
1292 | w *= rnorm; | ||
1293 | counter = 0; | ||
1294 | } | ||
1295 | |||
1296 | friend bool operator == ( const quaternion & q1, const quaternion & q2 ); | ||
1297 | |||
1298 | friend bool operator != ( const quaternion & q1, const quaternion & q2 ); | ||
1299 | |||
1300 | friend quaternion operator * ( const quaternion & q1, const quaternion & q2 ); | ||
1301 | |||
1302 | bool equals( const quaternion & r, real tolerance ) const | ||
1303 | { | ||
1304 | real t; | ||
1305 | |||
1306 | t = ( | ||
1307 | (q[0]-r.q[0])*(q[0]-r.q[0]) + | ||
1308 | (q[1]-r.q[1])*(q[1]-r.q[1]) + | ||
1309 | (q[2]-r.q[2])*(q[2]-r.q[2]) + | ||
1310 | (q[3]-r.q[3])*(q[3]-r.q[3]) ); | ||
1311 | if(t > GLH_EPSILON) | ||
1312 | return false; | ||
1313 | return 1; | ||
1314 | } | ||
1315 | |||
1316 | quaternion & conjugate() | ||
1317 | { | ||
1318 | q[0] *= -GLH_ONE; | ||
1319 | q[1] *= -GLH_ONE; | ||
1320 | q[2] *= -GLH_ONE; | ||
1321 | return *this; | ||
1322 | } | ||
1323 | |||
1324 | quaternion & invert() | ||
1325 | { | ||
1326 | return conjugate(); | ||
1327 | } | ||
1328 | |||
1329 | quaternion inverse() const | ||
1330 | { | ||
1331 | quaternion r = *this; | ||
1332 | return r.invert(); | ||
1333 | } | ||
1334 | |||
1335 | // | ||
1336 | // Quaternion multiplication with cartesian vector | ||
1337 | // v' = q*v*q(star) | ||
1338 | // | ||
1339 | void mult_vec( const vec3 &src, vec3 &dst ) const | ||
1340 | { | ||
1341 | real v_coef = w * w - x * x - y * y - z * z; | ||
1342 | real u_coef = GLH_TWO * (src.v[0] * x + src.v[1] * y + src.v[2] * z); | ||
1343 | real c_coef = GLH_TWO * w; | ||
1344 | |||
1345 | dst.v[0] = v_coef * src.v[0] + u_coef * x + c_coef * (y * src.v[2] - z * src.v[1]); | ||
1346 | dst.v[1] = v_coef * src.v[1] + u_coef * y + c_coef * (z * src.v[0] - x * src.v[2]); | ||
1347 | dst.v[2] = v_coef * src.v[2] + u_coef * z + c_coef * (x * src.v[1] - y * src.v[0]); | ||
1348 | } | ||
1349 | |||
1350 | void mult_vec( vec3 & src_and_dst) const | ||
1351 | { | ||
1352 | mult_vec(vec3(src_and_dst), src_and_dst); | ||
1353 | } | ||
1354 | |||
1355 | void scale_angle( real scaleFactor ) | ||
1356 | { | ||
1357 | vec3 axis; | ||
1358 | real radians; | ||
1359 | |||
1360 | get_value(axis, radians); | ||
1361 | radians *= scaleFactor; | ||
1362 | set_value(axis, radians); | ||
1363 | } | ||
1364 | |||
1365 | static quaternion slerp( const quaternion & p, const quaternion & q, real alpha ) | ||
1366 | { | ||
1367 | quaternion r; | ||
1368 | |||
1369 | real cos_omega = p.x * q.x + p.y * q.y + p.z * q.z + p.w * q.w; | ||
1370 | // if B is on opposite hemisphere from A, use -B instead | ||
1371 | |||
1372 | int bflip; | ||
1373 | if ( ( bflip = (cos_omega < GLH_ZERO)) ) | ||
1374 | cos_omega = -cos_omega; | ||
1375 | |||
1376 | // complementary interpolation parameter | ||
1377 | real beta = GLH_ONE - alpha; | ||
1378 | |||
1379 | if(cos_omega <= GLH_ONE - GLH_EPSILON) | ||
1380 | return p; | ||
1381 | |||
1382 | real omega = real(acos(cos_omega)); | ||
1383 | real one_over_sin_omega = GLH_ONE / real(sin(omega)); | ||
1384 | |||
1385 | beta = real(sin(omega*beta) * one_over_sin_omega); | ||
1386 | alpha = real(sin(omega*alpha) * one_over_sin_omega); | ||
1387 | |||
1388 | if (bflip) | ||
1389 | alpha = -alpha; | ||
1390 | |||
1391 | r.x = beta * p.q[0]+ alpha * q.q[0]; | ||
1392 | r.y = beta * p.q[1]+ alpha * q.q[1]; | ||
1393 | r.z = beta * p.q[2]+ alpha * q.q[2]; | ||
1394 | r.w = beta * p.q[3]+ alpha * q.q[3]; | ||
1395 | return r; | ||
1396 | } | ||
1397 | |||
1398 | static quaternion identity() | ||
1399 | { | ||
1400 | static quaternion ident( vec3( 0.0, 0.0, 0.0 ), GLH_ONE ); | ||
1401 | return ident; | ||
1402 | } | ||
1403 | |||
1404 | real & operator []( int i ) | ||
1405 | { | ||
1406 | assert(i < 4); | ||
1407 | return q[i]; | ||
1408 | } | ||
1409 | |||
1410 | const real & operator []( int i ) const | ||
1411 | { | ||
1412 | assert(i < 4); | ||
1413 | return q[i]; | ||
1414 | } | ||
1415 | |||
1416 | protected: | ||
1417 | |||
1418 | void counter_normalize() | ||
1419 | { | ||
1420 | if (counter > GLH_QUATERNION_NORMALIZATION_THRESHOLD) | ||
1421 | normalize(); | ||
1422 | } | ||
1423 | |||
1424 | union | ||
1425 | { | ||
1426 | struct | ||
1427 | { | ||
1428 | real q[4]; | ||
1429 | }; | ||
1430 | struct | ||
1431 | { | ||
1432 | real x; | ||
1433 | real y; | ||
1434 | real z; | ||
1435 | real w; | ||
1436 | }; | ||
1437 | }; | ||
1438 | |||
1439 | // renormalization counter | ||
1440 | unsigned char counter; | ||
1441 | }; | ||
1442 | |||
1443 | inline | ||
1444 | bool operator == ( const quaternion & q1, const quaternion & q2 ) | ||
1445 | { | ||
1446 | return (equivalent(q1.x, q2.x) && | ||
1447 | equivalent(q1.y, q2.y) && | ||
1448 | equivalent(q1.z, q2.z) && | ||
1449 | equivalent(q1.w, q2.w) ); | ||
1450 | } | ||
1451 | |||
1452 | inline | ||
1453 | bool operator != ( const quaternion & q1, const quaternion & q2 ) | ||
1454 | { | ||
1455 | return ! ( q1 == q2 ); | ||
1456 | } | ||
1457 | |||
1458 | inline | ||
1459 | quaternion operator * ( const quaternion & q1, const quaternion & q2 ) | ||
1460 | { | ||
1461 | quaternion r(q1); | ||
1462 | r *= q2; | ||
1463 | return r; | ||
1464 | } | ||
1465 | |||
1466 | |||
1467 | |||
1468 | |||
1469 | |||
1470 | |||
1471 | |||
1472 | |||
1473 | |||
1474 | |||
1475 | class plane | ||
1476 | { | ||
1477 | public: | ||
1478 | |||
1479 | plane() | ||
1480 | { | ||
1481 | planedistance = 0.0; | ||
1482 | planenormal.set_value( 0.0, 0.0, 1.0 ); | ||
1483 | } | ||
1484 | |||
1485 | |||
1486 | plane( const vec3 &p0, const vec3 &p1, const vec3 &p2 ) | ||
1487 | { | ||
1488 | vec3 v0 = p1 - p0; | ||
1489 | vec3 v1 = p2 - p0; | ||
1490 | planenormal = v0.cross(v1); | ||
1491 | planenormal.normalize(); | ||
1492 | planedistance = p0.dot(planenormal); | ||
1493 | } | ||
1494 | |||
1495 | plane( const vec3 &normal, real distance ) | ||
1496 | { | ||
1497 | planedistance = distance; | ||
1498 | planenormal = normal; | ||
1499 | planenormal.normalize(); | ||
1500 | } | ||
1501 | |||
1502 | plane( const vec3 &normal, const vec3 &point ) | ||
1503 | { | ||
1504 | planenormal = normal; | ||
1505 | planenormal.normalize(); | ||
1506 | planedistance = point.dot(planenormal); | ||
1507 | } | ||
1508 | |||
1509 | void offset( real d ) | ||
1510 | { | ||
1511 | planedistance += d; | ||
1512 | } | ||
1513 | |||
1514 | bool intersect( const line &l, vec3 &intersection ) const | ||
1515 | { | ||
1516 | vec3 pos, dir; | ||
1517 | vec3 pn = planenormal; | ||
1518 | real pd = planedistance; | ||
1519 | |||
1520 | pos = l.get_position(); | ||
1521 | dir = l.get_direction(); | ||
1522 | |||
1523 | if(dir.dot(pn) == 0.0) return 0; | ||
1524 | pos -= pn*pd; | ||
1525 | // now we're talking about a plane passing through the origin | ||
1526 | if(pos.dot(pn) < 0.0) pn.negate(); | ||
1527 | if(dir.dot(pn) > 0.0) dir.negate(); | ||
1528 | vec3 ppos = pn * pos.dot(pn); | ||
1529 | pos = (ppos.length()/dir.dot(-pn))*dir; | ||
1530 | intersection = l.get_position(); | ||
1531 | intersection += pos; | ||
1532 | return 1; | ||
1533 | } | ||
1534 | void transform( const matrix4 &matrix ) | ||
1535 | { | ||
1536 | matrix4 invtr = matrix.inverse(); | ||
1537 | invtr = invtr.transpose(); | ||
1538 | |||
1539 | vec3 pntOnplane = planenormal * planedistance; | ||
1540 | vec3 newPntOnplane; | ||
1541 | vec3 newnormal; | ||
1542 | |||
1543 | invtr.mult_dir_matrix(planenormal, newnormal); | ||
1544 | matrix.mult_vec_matrix(pntOnplane, newPntOnplane); | ||
1545 | |||
1546 | newnormal.normalize(); | ||
1547 | planenormal = newnormal; | ||
1548 | planedistance = newPntOnplane.dot(planenormal); | ||
1549 | } | ||
1550 | |||
1551 | bool is_in_half_space( const vec3 &point ) const | ||
1552 | { | ||
1553 | |||
1554 | if(( point.dot(planenormal) - planedistance) < 0.0) | ||
1555 | return 0; | ||
1556 | return 1; | ||
1557 | } | ||
1558 | |||
1559 | |||
1560 | real distance( const vec3 & point ) const | ||
1561 | { | ||
1562 | return planenormal.dot(point - planenormal*planedistance); | ||
1563 | } | ||
1564 | |||
1565 | const vec3 &get_normal() const | ||
1566 | { | ||
1567 | return planenormal; | ||
1568 | } | ||
1569 | |||
1570 | |||
1571 | real get_distance_from_origin() const | ||
1572 | { | ||
1573 | return planedistance; | ||
1574 | } | ||
1575 | |||
1576 | |||
1577 | friend bool operator == ( const plane & p1, const plane & p2 ); | ||
1578 | |||
1579 | |||
1580 | friend bool operator != ( const plane & p1, const plane & p2 ); | ||
1581 | |||
1582 | //protected: | ||
1583 | vec3 planenormal; | ||
1584 | real planedistance; | ||
1585 | }; | ||
1586 | |||
1587 | inline | ||
1588 | bool operator == (const plane & p1, const plane & p2 ) | ||
1589 | { | ||
1590 | return ( p1.planedistance == p2.planedistance && p1.planenormal == p2.planenormal); | ||
1591 | } | ||
1592 | |||
1593 | inline | ||
1594 | bool operator != ( const plane & p1, const plane & p2 ) | ||
1595 | { return ! (p1 == p2); } | ||
1596 | |||
1597 | |||
1598 | |||
1599 | } // "ns_##GLH_REAL" | ||
1600 | |||
1601 | // make common typedefs... | ||
1602 | #ifdef GLH_REAL_IS_FLOAT | ||
1603 | typedef GLH_REAL_NAMESPACE::vec2 vec2f; | ||
1604 | typedef GLH_REAL_NAMESPACE::vec3 vec3f; | ||
1605 | typedef GLH_REAL_NAMESPACE::vec4 vec4f; | ||
1606 | typedef GLH_REAL_NAMESPACE::quaternion quaternionf; | ||
1607 | typedef GLH_REAL_NAMESPACE::quaternion rotationf; | ||
1608 | typedef GLH_REAL_NAMESPACE::line linef; | ||
1609 | typedef GLH_REAL_NAMESPACE::plane planef; | ||
1610 | typedef GLH_REAL_NAMESPACE::matrix4 matrix4f; | ||
1611 | #endif | ||
1612 | |||
1613 | |||
1614 | |||
1615 | |||
1616 | } // namespace glh | ||
1617 | |||
1618 | |||
1619 | |||
1620 | #endif | ||
1621 | |||
diff --git a/linden/libraries/include/llmozlib2.h b/linden/libraries/include/llmozlib2.h deleted file mode 100644 index d85caf9..0000000 --- a/linden/libraries/include/llmozlib2.h +++ /dev/null | |||
@@ -1,383 +0,0 @@ | |||
1 | /* ***** BEGIN LICENSE BLOCK ***** | ||
2 | * Version: MPL 1.1/GPL 2.0/LGPL 2.1 | ||
3 | * | ||
4 | * The contents of this file are subject to the Mozilla Public License Version | ||
5 | * 1.1 (the "License"); you may not use this file except in compliance with | ||
6 | * the License. You may obtain a copy of the License at | ||
7 | * http://www.mozilla.org/MPL/ | ||
8 | * | ||
9 | * Software distributed under the License is distributed on an "AS IS" basis, | ||
10 | * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License | ||
11 | * for the specific language governing rights and limitations under the | ||
12 | * License. | ||
13 | * | ||
14 | * The Original Code is Linden Lab Inc. (http://lindenlab.com) code. | ||
15 | * | ||
16 | * The Initial Developer of the Original Code is: | ||
17 | * Callum Prentice (callum@ubrowser.com) | ||
18 | * | ||
19 | * Portions created by the Initial Developer are Copyright (C) 2006 | ||
20 | * the Initial Developer. All Rights Reserved. | ||
21 | * | ||
22 | * Contributor(s): | ||
23 | * Callum Prentice (callum@ubrowser.com) | ||
24 | * | ||
25 | * Alternatively, the contents of this file may be used under the terms of | ||
26 | * either the GNU General Public License Version 2 or later (the "GPL"), or | ||
27 | * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), | ||
28 | * in which case the provisions of the GPL or the LGPL are applicable instead | ||
29 | * of those above. If you wish to allow use of your version of this file only | ||
30 | * under the terms of either the GPL or the LGPL, and not to allow others to | ||
31 | * use your version of this file under the terms of the MPL, indicate your | ||
32 | * decision by deleting the provisions above and replace them with the notice | ||
33 | * and other provisions required by the GPL or the LGPL. If you do not delete | ||
34 | * the provisions above, a recipient may use your version of this file under | ||
35 | * the terms of any one of the MPL, the GPL or the LGPL. | ||
36 | * | ||
37 | * ***** END LICENSE BLOCK ***** */ | ||
38 | |||
39 | #ifndef LLMOZLIB_H | ||
40 | #define LLMOZLIB_H | ||
41 | |||
42 | #include <string> | ||
43 | #include <map> | ||
44 | |||
45 | class LLEmbeddedBrowser; | ||
46 | class LLEmbeddedBrowserWindow; | ||
47 | |||
48 | //////////////////////////////////////////////////////////////////////////////// | ||
49 | // data class that is passed with an event | ||
50 | class LLEmbeddedBrowserWindowEvent | ||
51 | { | ||
52 | public: | ||
53 | LLEmbeddedBrowserWindowEvent( int eventWindowIdIn, std::string uriIn ) : | ||
54 | mEventWindowId( eventWindowIdIn ), | ||
55 | mEventUri( uriIn ) | ||
56 | { | ||
57 | }; | ||
58 | |||
59 | // single int passed with the event - e.g. progress | ||
60 | LLEmbeddedBrowserWindowEvent( int eventWindowIdIn, std::string uriIn, int intValIn ) : | ||
61 | mEventWindowId( eventWindowIdIn ), | ||
62 | mEventUri( uriIn ), | ||
63 | mIntVal( intValIn ) | ||
64 | { | ||
65 | }; | ||
66 | |||
67 | // string passed with the event | ||
68 | LLEmbeddedBrowserWindowEvent( int eventWindowIdIn, std::string uriIn, std::string stringValIn ) : | ||
69 | mEventWindowId( eventWindowIdIn ), | ||
70 | mEventUri( uriIn ), | ||
71 | mStringVal( stringValIn ) | ||
72 | { | ||
73 | }; | ||
74 | |||
75 | // 2 strings passed with the event | ||
76 | LLEmbeddedBrowserWindowEvent( int eventWindowIdIn, std::string uriIn, std::string stringValIn, std::string stringVal2In ) : | ||
77 | mEventWindowId( eventWindowIdIn ), | ||
78 | mEventUri( uriIn ), | ||
79 | mStringVal( stringValIn ), | ||
80 | mStringVal2( stringVal2In ) | ||
81 | { | ||
82 | }; | ||
83 | |||
84 | // string and an int passed with the event | ||
85 | LLEmbeddedBrowserWindowEvent( int eventWindowIdIn, std::string uriIn, std::string stringValIn, int intValIn ) : | ||
86 | mEventWindowId( eventWindowIdIn ), | ||
87 | mEventUri( uriIn ), | ||
88 | mStringVal( stringValIn ), | ||
89 | mIntVal( intValIn ) | ||
90 | { | ||
91 | }; | ||
92 | |||
93 | // 4 ints passed (semantically as a rectangle but could be anything - didn't want to make a RECT type structure) | ||
94 | LLEmbeddedBrowserWindowEvent( int eventWindowIdIn, std::string uriIn, int xIn, int yIn, int widthIn, int heightIn ) : | ||
95 | mEventWindowId( eventWindowIdIn ), | ||
96 | mEventUri( uriIn ), | ||
97 | mXVal( xIn ), | ||
98 | mYVal( yIn ), | ||
99 | mWidthVal( widthIn ), | ||
100 | mHeightVal( heightIn ) | ||
101 | { | ||
102 | }; | ||
103 | |||
104 | virtual ~LLEmbeddedBrowserWindowEvent() | ||
105 | { | ||
106 | }; | ||
107 | |||
108 | int getEventWindowId() const | ||
109 | { | ||
110 | return mEventWindowId; | ||
111 | }; | ||
112 | |||
113 | std::string getEventUri() const | ||
114 | { | ||
115 | return mEventUri; | ||
116 | }; | ||
117 | |||
118 | int getIntValue() const | ||
119 | { | ||
120 | return mIntVal; | ||
121 | }; | ||
122 | |||
123 | std::string getStringValue() const | ||
124 | { | ||
125 | return mStringVal; | ||
126 | }; | ||
127 | |||
128 | std::string getStringValue2() const | ||
129 | { | ||
130 | return mStringVal2; | ||
131 | }; | ||
132 | |||
133 | void getRectValue( int& xOut, int& yOut, int& widthOut, int& heightOut ) const | ||
134 | { | ||
135 | xOut = mXVal; | ||
136 | yOut = mYVal; | ||
137 | widthOut = mWidthVal; | ||
138 | heightOut = mHeightVal; | ||
139 | }; | ||
140 | |||
141 | private: | ||
142 | int mEventWindowId; | ||
143 | std::string mEventUri; | ||
144 | int mIntVal; | ||
145 | std::string mStringVal; | ||
146 | std::string mStringVal2; | ||
147 | int mXVal; | ||
148 | int mYVal; | ||
149 | int mWidthVal; | ||
150 | int mHeightVal; | ||
151 | }; | ||
152 | |||
153 | //////////////////////////////////////////////////////////////////////////////// | ||
154 | // derrive from this class and override these methods to observe these events | ||
155 | class LLEmbeddedBrowserWindowObserver | ||
156 | { | ||
157 | public: | ||
158 | virtual ~LLEmbeddedBrowserWindowObserver() { }; | ||
159 | typedef LLEmbeddedBrowserWindowEvent EventType; | ||
160 | |||
161 | virtual void onPageChanged( const EventType& eventIn ) { }; | ||
162 | virtual void onNavigateBegin( const EventType& eventIn ) { }; | ||
163 | virtual void onNavigateComplete( const EventType& eventIn ) { }; | ||
164 | virtual void onUpdateProgress( const EventType& eventIn ) { }; | ||
165 | virtual void onStatusTextChange( const EventType& eventIn ) { }; | ||
166 | virtual void onLocationChange( const EventType& eventIn ) { }; | ||
167 | virtual void onClickLinkHref( const EventType& eventIn ) { }; | ||
168 | virtual void onClickLinkNoFollow( const EventType& eventIn ) { }; | ||
169 | }; | ||
170 | |||
171 | //////////////////////////////////////////////////////////////////////////////// | ||
172 | // main library class | ||
173 | class LLMozLib | ||
174 | { | ||
175 | public: | ||
176 | virtual ~LLMozLib(); | ||
177 | |||
178 | // singleton access | ||
179 | static LLMozLib* getInstance(); | ||
180 | |||
181 | // housekeeping | ||
182 | bool init( std::string applicationDir, std::string componentDir, std::string profileDir, void* nativeWindowHandleIn ); | ||
183 | bool reset(); | ||
184 | bool clearCache(); | ||
185 | int getLastError(); | ||
186 | const std::string getVersion(); | ||
187 | void setBrowserAgentId( std::string idIn ); | ||
188 | bool enableProxy( bool proxyEnabledIn, std::string proxyHostNameIn, int proxyPortIn ); | ||
189 | bool enableCookies( bool enabledIn ); | ||
190 | bool clearAllCookies(); | ||
191 | bool enablePlugins( bool enabledIn ); | ||
192 | |||
193 | // browser window - creation/deletion, mutation etc. | ||
194 | int createBrowserWindow( int browserWindowWidthIn, int browserWindowHeightIn ); | ||
195 | bool destroyBrowserWindow( int browserWindowIdIn ); | ||
196 | bool setSize( int browserWindowIdIn, int widthIn, int heightIn ); | ||
197 | bool scrollByLines( int browserWindowIdIn, int linesIn ); | ||
198 | bool setBackgroundColor( int browserWindowIdIn, const int redIn, const int greenIn, const int blueIn ); | ||
199 | bool setCaretColor( int browserWindowIdIn, const int redIn, const int greenIn, const int blueIn ); | ||
200 | bool setEnabled( int browserWindowIdIn, bool enabledIn ); | ||
201 | |||
202 | // add/remove yourself as an observer on browser events - see LLEmbeddedBrowserWindowObserver declaration | ||
203 | bool addObserver( int browserWindowIdIn, LLEmbeddedBrowserWindowObserver* subjectIn ); | ||
204 | bool remObserver( int browserWindowIdIn, LLEmbeddedBrowserWindowObserver* subjectIn ); | ||
205 | |||
206 | // navigation - self explanatory | ||
207 | bool navigateTo( int browserWindowIdIn, const std::string uriIn ); | ||
208 | bool navigateStop( int browserWindowIdIn ); | ||
209 | bool canNavigateBack( int browserWindowIdIn ); | ||
210 | bool navigateBack( int browserWindowIdIn ); | ||
211 | bool canNavigateForward( int browserWindowIdIn ); | ||
212 | bool navigateForward( int browserWindowIdIn ); | ||
213 | |||
214 | // javascript access/control | ||
215 | std::string evaluateJavascript( int browserWindowIdIn, const std::string scriptIn ); | ||
216 | |||
217 | // set/clear URL to redirect to when a 404 page is reached | ||
218 | bool set404RedirectUrl( int browser_window_in, std::string redirect_url ); | ||
219 | bool clr404RedirectUrl( int browser_window_in ); | ||
220 | |||
221 | // access to rendered bitmap data | ||
222 | const unsigned char* grabBrowserWindow( int browserWindowIdIn ); // renders page to memory and returns pixels | ||
223 | const unsigned char* getBrowserWindowPixels( int browserWindowIdIn ); // just returns pixels - no render | ||
224 | const bool flipWindow( int browserWindowIdIn, bool flipIn ); // optionally flip window (pixels) you get back | ||
225 | const int getBrowserWidth( int browserWindowIdIn ); // current browser width (can vary slightly after page is rendered) | ||
226 | const int getBrowserHeight( int browserWindowIdIn ); // current height | ||
227 | const int getBrowserDepth( int browserWindowIdIn ); // depth in bytes | ||
228 | const int getBrowserRowSpan( int browserWindowIdIn ); // width in pixels * depth in bytes | ||
229 | |||
230 | // mouse/keyboard interaction | ||
231 | bool mouseDown( int browserWindowIdIn, int xPosIn, int yPosIn ); // send a mouse down event to a browser window at given XY in browser space | ||
232 | bool mouseUp( int browserWindowIdIn, int xPosIn, int yPosIn ); // send a mouse up event to a browser window at given XY in browser space | ||
233 | bool mouseMove( int browserWindowIdIn, int xPosIn, int yPosIn ); // send a mouse move event to a browser window at given XY in browser space | ||
234 | bool mouseLeftDoubleClick( int browserWindowIdIn, int xPosIn, int yPosIn ); // send a mouse left button double click to a browser window at given XY in browser space | ||
235 | bool keyPress( int browserWindowIdIn, int keyCodeIn ); // send a key press event to a browser window | ||
236 | bool unicodeInput ( int browserWindowIdIn, unsigned long uni_char ); // send a unicode keypress event to a browser window | ||
237 | bool focusBrowser( int browserWindowIdIn, bool focusBrowserIn ); // set/remove focus to given browser window | ||
238 | |||
239 | // accessor/mutator for scheme that browser doesn't follow - e.g. secondlife.com:// | ||
240 | void setNoFollowScheme( int browserWindowIdIn, std::string schemeIn ); | ||
241 | std::string getNoFollowScheme( int browserWindowIdIn ); | ||
242 | |||
243 | private: | ||
244 | LLMozLib(); | ||
245 | LLEmbeddedBrowserWindow* getBrowserWindowFromWindowId( int browserWindowIdIn ); | ||
246 | static LLMozLib* sInstance; | ||
247 | const int mMaxBrowserWindows; | ||
248 | typedef std::map< int, LLEmbeddedBrowserWindow* > BrowserWindowMap; | ||
249 | typedef std::map< int, LLEmbeddedBrowserWindow* >::iterator BrowserWindowMapIter; | ||
250 | BrowserWindowMap mBrowserWindowMap; | ||
251 | }; | ||
252 | |||
253 | // Mozilla virtual keycodes. | ||
254 | // We don't want to suck in Mozilla headers so we copy these consts | ||
255 | // from nsIDOMKeyEvent.idl. | ||
256 | |||
257 | const unsigned long LL_DOM_VK_CANCEL = 0x03; | ||
258 | const unsigned long LL_DOM_VK_HELP = 0x06; | ||
259 | const unsigned long LL_DOM_VK_BACK_SPACE = 0x08; | ||
260 | const unsigned long LL_DOM_VK_TAB = 0x09; | ||
261 | const unsigned long LL_DOM_VK_CLEAR = 0x0C; | ||
262 | const unsigned long LL_DOM_VK_RETURN = 0x0D; | ||
263 | const unsigned long LL_DOM_VK_ENTER = 0x0E; | ||
264 | const unsigned long LL_DOM_VK_SHIFT = 0x10; | ||
265 | const unsigned long LL_DOM_VK_CONTROL = 0x11; | ||
266 | const unsigned long LL_DOM_VK_ALT = 0x12; | ||
267 | const unsigned long LL_DOM_VK_PAUSE = 0x13; | ||
268 | const unsigned long LL_DOM_VK_CAPS_LOCK = 0x14; | ||
269 | const unsigned long LL_DOM_VK_ESCAPE = 0x1B; | ||
270 | const unsigned long LL_DOM_VK_SPACE = 0x20; | ||
271 | const unsigned long LL_DOM_VK_PAGE_UP = 0x21; | ||
272 | const unsigned long LL_DOM_VK_PAGE_DOWN = 0x22; | ||
273 | const unsigned long LL_DOM_VK_END = 0x23; | ||
274 | const unsigned long LL_DOM_VK_HOME = 0x24; | ||
275 | const unsigned long LL_DOM_VK_LEFT = 0x25; | ||
276 | const unsigned long LL_DOM_VK_UP = 0x26; | ||
277 | const unsigned long LL_DOM_VK_RIGHT = 0x27; | ||
278 | const unsigned long LL_DOM_VK_DOWN = 0x28; | ||
279 | const unsigned long LL_DOM_VK_PRINTSCREEN = 0x2C; | ||
280 | const unsigned long LL_DOM_VK_INSERT = 0x2D; | ||
281 | const unsigned long LL_DOM_VK_DELETE = 0x2E; | ||
282 | |||
283 | // LL_DOM_VK_0 - LL_DOM_VK_9 match their ASCII values | ||
284 | const unsigned long LL_DOM_VK_0 = 0x30; | ||
285 | const unsigned long LL_DOM_VK_1 = 0x31; | ||
286 | const unsigned long LL_DOM_VK_2 = 0x32; | ||
287 | const unsigned long LL_DOM_VK_3 = 0x33; | ||
288 | const unsigned long LL_DOM_VK_4 = 0x34; | ||
289 | const unsigned long LL_DOM_VK_5 = 0x35; | ||
290 | const unsigned long LL_DOM_VK_6 = 0x36; | ||
291 | const unsigned long LL_DOM_VK_7 = 0x37; | ||
292 | const unsigned long LL_DOM_VK_8 = 0x38; | ||
293 | const unsigned long LL_DOM_VK_9 = 0x39; | ||
294 | |||
295 | const unsigned long LL_DOM_VK_SEMICOLON = 0x3B; | ||
296 | const unsigned long LL_DOM_VK_EQUALS = 0x3D; | ||
297 | |||
298 | // LL_DOM_VK_A - LL_DOM_VK_Z match their ASCII values | ||
299 | const unsigned long LL_DOM_VK_A = 0x41; | ||
300 | const unsigned long LL_DOM_VK_B = 0x42; | ||
301 | const unsigned long LL_DOM_VK_C = 0x43; | ||
302 | const unsigned long LL_DOM_VK_D = 0x44; | ||
303 | const unsigned long LL_DOM_VK_E = 0x45; | ||
304 | const unsigned long LL_DOM_VK_F = 0x46; | ||
305 | const unsigned long LL_DOM_VK_G = 0x47; | ||
306 | const unsigned long LL_DOM_VK_H = 0x48; | ||
307 | const unsigned long LL_DOM_VK_I = 0x49; | ||
308 | const unsigned long LL_DOM_VK_J = 0x4A; | ||
309 | const unsigned long LL_DOM_VK_K = 0x4B; | ||
310 | const unsigned long LL_DOM_VK_L = 0x4C; | ||
311 | const unsigned long LL_DOM_VK_M = 0x4D; | ||
312 | const unsigned long LL_DOM_VK_N = 0x4E; | ||
313 | const unsigned long LL_DOM_VK_O = 0x4F; | ||
314 | const unsigned long LL_DOM_VK_P = 0x50; | ||
315 | const unsigned long LL_DOM_VK_Q = 0x51; | ||
316 | const unsigned long LL_DOM_VK_R = 0x52; | ||
317 | const unsigned long LL_DOM_VK_S = 0x53; | ||
318 | const unsigned long LL_DOM_VK_T = 0x54; | ||
319 | const unsigned long LL_DOM_VK_U = 0x55; | ||
320 | const unsigned long LL_DOM_VK_V = 0x56; | ||
321 | const unsigned long LL_DOM_VK_W = 0x57; | ||
322 | const unsigned long LL_DOM_VK_X = 0x58; | ||
323 | const unsigned long LL_DOM_VK_Y = 0x59; | ||
324 | const unsigned long LL_DOM_VK_Z = 0x5A; | ||
325 | |||
326 | const unsigned long LL_DOM_VK_CONTEXT_MENU = 0x5D; | ||
327 | |||
328 | const unsigned long LL_DOM_VK_NUMPAD0 = 0x60; | ||
329 | const unsigned long LL_DOM_VK_NUMPAD1 = 0x61; | ||
330 | const unsigned long LL_DOM_VK_NUMPAD2 = 0x62; | ||
331 | const unsigned long LL_DOM_VK_NUMPAD3 = 0x63; | ||
332 | const unsigned long LL_DOM_VK_NUMPAD4 = 0x64; | ||
333 | const unsigned long LL_DOM_VK_NUMPAD5 = 0x65; | ||
334 | const unsigned long LL_DOM_VK_NUMPAD6 = 0x66; | ||
335 | const unsigned long LL_DOM_VK_NUMPAD7 = 0x67; | ||
336 | const unsigned long LL_DOM_VK_NUMPAD8 = 0x68; | ||
337 | const unsigned long LL_DOM_VK_NUMPAD9 = 0x69; | ||
338 | const unsigned long LL_DOM_VK_MULTIPLY = 0x6A; | ||
339 | const unsigned long LL_DOM_VK_ADD = 0x6B; | ||
340 | const unsigned long LL_DOM_VK_SEPARATOR = 0x6C; | ||
341 | const unsigned long LL_DOM_VK_SUBTRACT = 0x6D; | ||
342 | const unsigned long LL_DOM_VK_DECIMAL = 0x6E; | ||
343 | const unsigned long LL_DOM_VK_DIVIDE = 0x6F; | ||
344 | const unsigned long LL_DOM_VK_F1 = 0x70; | ||
345 | const unsigned long LL_DOM_VK_F2 = 0x71; | ||
346 | const unsigned long LL_DOM_VK_F3 = 0x72; | ||
347 | const unsigned long LL_DOM_VK_F4 = 0x73; | ||
348 | const unsigned long LL_DOM_VK_F5 = 0x74; | ||
349 | const unsigned long LL_DOM_VK_F6 = 0x75; | ||
350 | const unsigned long LL_DOM_VK_F7 = 0x76; | ||
351 | const unsigned long LL_DOM_VK_F8 = 0x77; | ||
352 | const unsigned long LL_DOM_VK_F9 = 0x78; | ||
353 | const unsigned long LL_DOM_VK_F10 = 0x79; | ||
354 | const unsigned long LL_DOM_VK_F11 = 0x7A; | ||
355 | const unsigned long LL_DOM_VK_F12 = 0x7B; | ||
356 | const unsigned long LL_DOM_VK_F13 = 0x7C; | ||
357 | const unsigned long LL_DOM_VK_F14 = 0x7D; | ||
358 | const unsigned long LL_DOM_VK_F15 = 0x7E; | ||
359 | const unsigned long LL_DOM_VK_F16 = 0x7F; | ||
360 | const unsigned long LL_DOM_VK_F17 = 0x80; | ||
361 | const unsigned long LL_DOM_VK_F18 = 0x81; | ||
362 | const unsigned long LL_DOM_VK_F19 = 0x82; | ||
363 | const unsigned long LL_DOM_VK_F20 = 0x83; | ||
364 | const unsigned long LL_DOM_VK_F21 = 0x84; | ||
365 | const unsigned long LL_DOM_VK_F22 = 0x85; | ||
366 | const unsigned long LL_DOM_VK_F23 = 0x86; | ||
367 | const unsigned long LL_DOM_VK_F24 = 0x87; | ||
368 | |||
369 | const unsigned long LL_DOM_VK_NUM_LOCK = 0x90; | ||
370 | const unsigned long LL_DOM_VK_SCROLL_LOCK = 0x91; | ||
371 | |||
372 | const unsigned long LL_DOM_VK_COMMA = 0xBC; | ||
373 | const unsigned long LL_DOM_VK_PERIOD = 0xBE; | ||
374 | const unsigned long LL_DOM_VK_SLASH = 0xBF; | ||
375 | const unsigned long LL_DOM_VK_BACK_QUOTE = 0xC0; | ||
376 | const unsigned long LL_DOM_VK_OPEN_BRACKET = 0xDB; | ||
377 | const unsigned long LL_DOM_VK_BACK_SLASH = 0xDC; | ||
378 | const unsigned long LL_DOM_VK_CLOSE_BRACKET = 0xDD; | ||
379 | const unsigned long LL_DOM_VK_QUOTE = 0xDE; | ||
380 | |||
381 | const unsigned long LL_DOM_VK_META = 0xE0; | ||
382 | |||
383 | #endif // LLMOZLIB_H | ||