author | Ryan C. Gordon <icculus@icculus.org> |
Thu, 03 Jul 2008 12:09:26 -0400 | |
branch | trunk |
changeset 421 | bfd3d95273ec |
parent 412 | 4e275a0788f7 |
permissions | -rw-r--r-- |
269 | 1 |
#ifdef _WINDOWS |
2 |
#define WIN32_LEAN_AND_MEAN 1 |
|
3 |
#include <windows.h> |
|
4 |
#endif |
|
5 |
||
6 |
#include <stdio.h> |
|
272
951e5cecbd99
Patched to compile on Mac OS X.
Ryan C. Gordon <icculus@icculus.org>
parents:
271
diff
changeset
|
7 |
#define GL_GLEXT_LEGACY 1 |
269 | 8 |
#include "GL/gl.h" |
9 |
#include "GL/glext.h" |
|
10 |
#include "SDL.h" |
|
11 |
||
277
49a6571cac6d
Patched to compile on older (?) GL headers.
Ryan C. Gordon <icculus@icculus.org>
parents:
275
diff
changeset
|
12 |
#ifndef WINGDIAPI |
49a6571cac6d
Patched to compile on older (?) GL headers.
Ryan C. Gordon <icculus@icculus.org>
parents:
275
diff
changeset
|
13 |
#define WINGDIAPI |
49a6571cac6d
Patched to compile on older (?) GL headers.
Ryan C. Gordon <icculus@icculus.org>
parents:
275
diff
changeset
|
14 |
#endif |
49a6571cac6d
Patched to compile on older (?) GL headers.
Ryan C. Gordon <icculus@icculus.org>
parents:
275
diff
changeset
|
15 |
|
275
cd25ba040c5e
Whoops, glGetIntegerv() returns void. Cut-and-paste error!
Ryan C. Gordon <icculus@icculus.org>
parents:
274
diff
changeset
|
16 |
typedef WINGDIAPI void (APIENTRYP PFNGLGETINTEGERVPROC) (GLenum pname, GLint *params); |
269 | 17 |
typedef WINGDIAPI const GLubyte * (APIENTRYP PFNGLGETSTRINGPROC) (GLenum name); |
18 |
||
271
a9f0f4a1d9a9
Research on GL_EXT_bindable_uniform for future experimentation.
Ryan C. Gordon <icculus@icculus.org>
parents:
269
diff
changeset
|
19 |
#ifndef GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT |
a9f0f4a1d9a9
Research on GL_EXT_bindable_uniform for future experimentation.
Ryan C. Gordon <icculus@icculus.org>
parents:
269
diff
changeset
|
20 |
#define GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT 0x8DE2 |
a9f0f4a1d9a9
Research on GL_EXT_bindable_uniform for future experimentation.
Ryan C. Gordon <icculus@icculus.org>
parents:
269
diff
changeset
|
21 |
#endif |
a9f0f4a1d9a9
Research on GL_EXT_bindable_uniform for future experimentation.
Ryan C. Gordon <icculus@icculus.org>
parents:
269
diff
changeset
|
22 |
#ifndef GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT |
a9f0f4a1d9a9
Research on GL_EXT_bindable_uniform for future experimentation.
Ryan C. Gordon <icculus@icculus.org>
parents:
269
diff
changeset
|
23 |
#define GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT 0x8DE3 |
a9f0f4a1d9a9
Research on GL_EXT_bindable_uniform for future experimentation.
Ryan C. Gordon <icculus@icculus.org>
parents:
269
diff
changeset
|
24 |
#endif |
a9f0f4a1d9a9
Research on GL_EXT_bindable_uniform for future experimentation.
Ryan C. Gordon <icculus@icculus.org>
parents:
269
diff
changeset
|
25 |
#ifndef GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT |
a9f0f4a1d9a9
Research on GL_EXT_bindable_uniform for future experimentation.
Ryan C. Gordon <icculus@icculus.org>
parents:
269
diff
changeset
|
26 |
#define GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT 0x8DE4 |
a9f0f4a1d9a9
Research on GL_EXT_bindable_uniform for future experimentation.
Ryan C. Gordon <icculus@icculus.org>
parents:
269
diff
changeset
|
27 |
#endif |
a9f0f4a1d9a9
Research on GL_EXT_bindable_uniform for future experimentation.
Ryan C. Gordon <icculus@icculus.org>
parents:
269
diff
changeset
|
28 |
#ifndef GL_MAX_BINDABLE_UNIFORM_SIZE_EXT |
a9f0f4a1d9a9
Research on GL_EXT_bindable_uniform for future experimentation.
Ryan C. Gordon <icculus@icculus.org>
parents:
269
diff
changeset
|
29 |
#define GL_MAX_BINDABLE_UNIFORM_SIZE_EXT 0x8DED |
a9f0f4a1d9a9
Research on GL_EXT_bindable_uniform for future experimentation.
Ryan C. Gordon <icculus@icculus.org>
parents:
269
diff
changeset
|
30 |
#endif |
a9f0f4a1d9a9
Research on GL_EXT_bindable_uniform for future experimentation.
Ryan C. Gordon <icculus@icculus.org>
parents:
269
diff
changeset
|
31 |
|
a9f0f4a1d9a9
Research on GL_EXT_bindable_uniform for future experimentation.
Ryan C. Gordon <icculus@icculus.org>
parents:
269
diff
changeset
|
32 |
|
269 | 33 |
int main(int argc, char **argv) |
34 |
{ |
|
35 |
GLint val = 0; |
|
412
4e275a0788f7
Added test for GLSL version string.
Ryan C. Gordon <icculus@icculus.org>
parents:
277
diff
changeset
|
36 |
const char *str = NULL; |
269 | 37 |
|
38 |
SDL_Init(SDL_INIT_VIDEO); |
|
39 |
SDL_GL_LoadLibrary(NULL); |
|
40 |
SDL_SetVideoMode(640, 480, 0, SDL_OPENGL); |
|
41 |
||
42 |
PFNGLGETSTRINGPROC pglGetString = (PFNGLGETSTRINGPROC) SDL_GL_GetProcAddress("glGetString"); |
|
43 |
PFNGLGETINTEGERVPROC pglGetIntegerv = (PFNGLGETINTEGERVPROC) SDL_GL_GetProcAddress("glGetIntegerv"); |
|
44 |
PFNGLGETPROGRAMIVARBPROC pglGetProgramivARB = (PFNGLGETPROGRAMIVARBPROC) SDL_GL_GetProcAddress("glGetProgramivARB"); |
|
45 |
||
46 |
printf("Basic strings...\n\n"); |
|
47 |
||
48 |
#define getval(x) printf(#x ": %s\n", pglGetString(x)) |
|
49 |
||
50 |
getval(GL_RENDERER); |
|
51 |
getval(GL_VERSION); |
|
52 |
getval(GL_VENDOR); |
|
53 |
||
54 |
#undef getval |
|
55 |
||
56 |
printf("\nExtensions...\n\n"); |
|
57 |
||
58 |
const GLubyte *ext = pglGetString(GL_EXTENSIONS); |
|
59 |
while (*ext) |
|
60 |
{ |
|
61 |
fputc((*ext == ' ') ? '\n' : ((int) *ext), stdout); |
|
62 |
ext++; |
|
63 |
} // while |
|
64 |
||
65 |
ext--; |
|
66 |
if (*ext != ' ') |
|
67 |
printf("\n"); |
|
68 |
||
69 |
printf("\nARB1 values...\n\n"); |
|
70 |
||
71 |
if (pglGetProgramivARB == NULL) |
|
72 |
printf(" (unsupported.)\n"); |
|
73 |
else |
|
74 |
{ |
|
75 |
#define getval(x) \ |
|
76 |
val = -1; \ |
|
77 |
pglGetProgramivARB(GL_VERTEX_PROGRAM_ARB, x, &val); \ |
|
78 |
printf(#x ": %d\n", (int) val); |
|
79 |
||
80 |
getval(GL_MAX_PROGRAM_INSTRUCTIONS_ARB); |
|
81 |
getval(GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB); |
|
82 |
getval(GL_MAX_PROGRAM_TEMPORARIES_ARB); |
|
83 |
getval(GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB); |
|
84 |
getval(GL_MAX_PROGRAM_PARAMETERS_ARB); |
|
85 |
getval(GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB); |
|
86 |
getval(GL_MAX_PROGRAM_ATTRIBS_ARB); |
|
87 |
getval(GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB); |
|
88 |
getval(GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB); |
|
89 |
getval(GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB); |
|
90 |
getval(GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB); |
|
91 |
getval(GL_MAX_PROGRAM_ENV_PARAMETERS_ARB); |
|
92 |
getval(GL_MAX_PROGRAM_PARAMETERS_ARB); |
|
93 |
||
94 |
#undef getval |
|
95 |
} // else |
|
96 |
||
97 |
printf("\nGLSL values...\n\n"); |
|
98 |
||
99 |
#define getval(x) \ |
|
100 |
val = -1; \ |
|
101 |
pglGetIntegerv(x, &val); \ |
|
102 |
printf(#x ": %d\n", (int) val); |
|
103 |
||
412
4e275a0788f7
Added test for GLSL version string.
Ryan C. Gordon <icculus@icculus.org>
parents:
277
diff
changeset
|
104 |
str = (const char *) pglGetString(GL_SHADING_LANGUAGE_VERSION_ARB); |
4e275a0788f7
Added test for GLSL version string.
Ryan C. Gordon <icculus@icculus.org>
parents:
277
diff
changeset
|
105 |
printf("GL_SHADING_LANGUAGE_VERSION_ARB: %s\n", str); |
269 | 106 |
getval(GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB); |
107 |
getval(GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB); |
|
274
857f2198d5a9
Removed tab characters from source.
Ryan C. Gordon <icculus@icculus.org>
parents:
273
diff
changeset
|
108 |
getval(GL_MAX_VARYING_FLOATS_ARB); |
857f2198d5a9
Removed tab characters from source.
Ryan C. Gordon <icculus@icculus.org>
parents:
273
diff
changeset
|
109 |
getval(GL_MAX_VERTEX_ATTRIBS_ARB); |
857f2198d5a9
Removed tab characters from source.
Ryan C. Gordon <icculus@icculus.org>
parents:
273
diff
changeset
|
110 |
getval(GL_MAX_TEXTURE_IMAGE_UNITS_ARB); |
857f2198d5a9
Removed tab characters from source.
Ryan C. Gordon <icculus@icculus.org>
parents:
273
diff
changeset
|
111 |
getval(GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB); |
857f2198d5a9
Removed tab characters from source.
Ryan C. Gordon <icculus@icculus.org>
parents:
273
diff
changeset
|
112 |
getval(GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB); |
857f2198d5a9
Removed tab characters from source.
Ryan C. Gordon <icculus@icculus.org>
parents:
273
diff
changeset
|
113 |
getval(GL_MAX_TEXTURE_COORDS_ARB); |
269 | 114 |
|
271
a9f0f4a1d9a9
Research on GL_EXT_bindable_uniform for future experimentation.
Ryan C. Gordon <icculus@icculus.org>
parents:
269
diff
changeset
|
115 |
printf("\nGL_EXT_bindable_uniform values...\n\n"); |
a9f0f4a1d9a9
Research on GL_EXT_bindable_uniform for future experimentation.
Ryan C. Gordon <icculus@icculus.org>
parents:
269
diff
changeset
|
116 |
|
a9f0f4a1d9a9
Research on GL_EXT_bindable_uniform for future experimentation.
Ryan C. Gordon <icculus@icculus.org>
parents:
269
diff
changeset
|
117 |
getval(GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT); |
a9f0f4a1d9a9
Research on GL_EXT_bindable_uniform for future experimentation.
Ryan C. Gordon <icculus@icculus.org>
parents:
269
diff
changeset
|
118 |
getval(GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT); |
a9f0f4a1d9a9
Research on GL_EXT_bindable_uniform for future experimentation.
Ryan C. Gordon <icculus@icculus.org>
parents:
269
diff
changeset
|
119 |
getval(GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT); |
a9f0f4a1d9a9
Research on GL_EXT_bindable_uniform for future experimentation.
Ryan C. Gordon <icculus@icculus.org>
parents:
269
diff
changeset
|
120 |
getval(GL_MAX_BINDABLE_UNIFORM_SIZE_EXT); |
a9f0f4a1d9a9
Research on GL_EXT_bindable_uniform for future experimentation.
Ryan C. Gordon <icculus@icculus.org>
parents:
269
diff
changeset
|
121 |
|
269 | 122 |
#undef getval |
123 |
||
124 |
SDL_Quit(); |
|
125 |
printf("\n"); |
|
126 |
||
127 |
return 0; |
|
128 |
} |
|
129 |
||
130 |