2
* Copyright (C) 2006 Claudio Ciccani <klan@users.sf.net>
4
* This library is free software; you can redistribute it and/or
5
* modify it under the terms of the GNU Lesser General Public
6
* License as published by the Free Software Foundation; either
7
* version 2 of the License, or (at your option) any later version.
9
* This library is distributed in the hope that it will be useful,
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
* Lesser General Public License for more details.
14
* You should have received a copy of the GNU Lesser General Public
15
* License along with this library; if not, write to the Free Software
16
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
29
const GLUTproc address;
30
} glut_functions[] = {
31
{ "glutInit", (const GLUTproc) glutInit },
32
{ "glutInitDisplayMode", (const GLUTproc) glutInitDisplayMode },
33
{ "glutInitDisplayString", (const GLUTproc) glutInitDisplayString },
34
{ "glutInitWindowPosition", (const GLUTproc) glutInitWindowPosition },
35
{ "glutInitWindowSize", (const GLUTproc) glutInitWindowSize },
36
{ "glutMainLoop", (const GLUTproc) glutMainLoop },
37
{ "glutCreateWindow", (const GLUTproc) glutCreateWindow },
38
{ "glutCreateSubWindow", (const GLUTproc) glutCreateSubWindow },
39
{ "glutDestroyWindow", (const GLUTproc) glutDestroyWindow },
40
{ "glutPostRedisplay", (const GLUTproc) glutPostRedisplay },
41
{ "glutPostWindowRedisplay", (const GLUTproc) glutPostWindowRedisplay },
42
{ "glutSwapBuffers", (const GLUTproc) glutSwapBuffers },
43
{ "glutGetWindow", (const GLUTproc) glutGetWindow },
44
{ "glutSetWindow", (const GLUTproc) glutSetWindow },
45
{ "glutSetWindowTitle", (const GLUTproc) glutSetWindowTitle },
46
{ "glutSetIconTitle", (const GLUTproc) glutSetIconTitle },
47
{ "glutPositionWindow", (const GLUTproc) glutPositionWindow },
48
{ "glutReshapeWindow", (const GLUTproc) glutReshapeWindow },
49
{ "glutPopWindow", (const GLUTproc) glutPopWindow },
50
{ "glutPushWindow", (const GLUTproc) glutPushWindow },
51
{ "glutIconifyWindow", (const GLUTproc) glutIconifyWindow },
52
{ "glutShowWindow", (const GLUTproc) glutShowWindow },
53
{ "glutHideWindow", (const GLUTproc) glutHideWindow },
54
{ "glutFullScreen", (const GLUTproc) glutFullScreen },
55
{ "glutSetCursor", (const GLUTproc) glutSetCursor },
56
{ "glutWarpPointer", (const GLUTproc) glutWarpPointer },
57
{ "glutEstablishOverlay", (const GLUTproc) glutEstablishOverlay },
58
{ "glutRemoveOverlay", (const GLUTproc) glutRemoveOverlay },
59
{ "glutUseLayer", (const GLUTproc) glutUseLayer },
60
{ "glutPostOverlayRedisplay", (const GLUTproc) glutPostOverlayRedisplay },
61
{ "glutPostWindowOverlayRedisplay", (const GLUTproc) glutPostWindowOverlayRedisplay },
62
{ "glutShowOverlay", (const GLUTproc) glutShowOverlay },
63
{ "glutHideOverlay", (const GLUTproc) glutHideOverlay },
64
{ "glutCreateMenu", (const GLUTproc) glutCreateMenu },
65
{ "glutDestroyMenu", (const GLUTproc) glutDestroyMenu },
66
{ "glutGetMenu", (const GLUTproc) glutGetMenu },
67
{ "glutSetMenu", (const GLUTproc) glutSetMenu },
68
{ "glutAddMenuEntry", (const GLUTproc) glutAddMenuEntry },
69
{ "glutAddSubMenu", (const GLUTproc) glutAddSubMenu },
70
{ "glutChangeToMenuEntry", (const GLUTproc) glutChangeToMenuEntry },
71
{ "glutChangeToSubMenu", (const GLUTproc) glutChangeToSubMenu },
72
{ "glutRemoveMenuItem", (const GLUTproc) glutRemoveMenuItem },
73
{ "glutAttachMenu", (const GLUTproc) glutAttachMenu },
74
{ "glutDetachMenu", (const GLUTproc) glutDetachMenu },
75
{ "glutDisplayFunc", (const GLUTproc) glutDisplayFunc },
76
{ "glutReshapeFunc", (const GLUTproc) glutReshapeFunc },
77
{ "glutKeyboardFunc", (const GLUTproc) glutKeyboardFunc },
78
{ "glutMouseFunc", (const GLUTproc) glutMouseFunc },
79
{ "glutMotionFunc", (const GLUTproc) glutMotionFunc },
80
{ "glutPassiveMotionFunc", (const GLUTproc) glutPassiveMotionFunc },
81
{ "glutEntryFunc", (const GLUTproc) glutEntryFunc },
82
{ "glutVisibilityFunc", (const GLUTproc) glutVisibilityFunc },
83
{ "glutIdleFunc", (const GLUTproc) glutIdleFunc },
84
{ "glutTimerFunc", (const GLUTproc) glutTimerFunc },
85
{ "glutMenuStateFunc", (const GLUTproc) glutMenuStateFunc },
86
{ "glutSpecialFunc", (const GLUTproc) glutSpecialFunc },
87
{ "glutSpaceballMotionFunc", (const GLUTproc) glutSpaceballMotionFunc },
88
{ "glutSpaceballRotateFunc", (const GLUTproc) glutSpaceballRotateFunc },
89
{ "glutSpaceballButtonFunc", (const GLUTproc) glutSpaceballButtonFunc },
90
{ "glutButtonBoxFunc", (const GLUTproc) glutButtonBoxFunc },
91
{ "glutDialsFunc", (const GLUTproc) glutDialsFunc },
92
{ "glutTabletMotionFunc", (const GLUTproc) glutTabletMotionFunc },
93
{ "glutTabletButtonFunc", (const GLUTproc) glutTabletButtonFunc },
94
{ "glutMenuStatusFunc", (const GLUTproc) glutMenuStatusFunc },
95
{ "glutOverlayDisplayFunc", (const GLUTproc) glutOverlayDisplayFunc },
96
{ "glutWindowStatusFunc", (const GLUTproc) glutWindowStatusFunc },
97
{ "glutKeyboardUpFunc", (const GLUTproc) glutKeyboardUpFunc },
98
{ "glutSpecialUpFunc", (const GLUTproc) glutSpecialUpFunc },
99
{ "glutJoystickFunc", (const GLUTproc) glutJoystickFunc },
100
{ "glutSetColor", (const GLUTproc) glutSetColor },
101
{ "glutGetColor", (const GLUTproc) glutGetColor },
102
{ "glutCopyColormap", (const GLUTproc) glutCopyColormap },
103
{ "glutGet", (const GLUTproc) glutGet },
104
{ "glutDeviceGet", (const GLUTproc) glutDeviceGet },
105
{ "glutExtensionSupported", (const GLUTproc) glutExtensionSupported },
106
{ "glutGetModifiers", (const GLUTproc) glutGetModifiers },
107
{ "glutLayerGet", (const GLUTproc) glutLayerGet },
108
{ "glutGetProcAddress", (const GLUTproc) glutGetProcAddress },
109
{ "glutBitmapCharacter", (const GLUTproc) glutBitmapCharacter },
110
{ "glutBitmapWidth", (const GLUTproc) glutBitmapWidth },
111
{ "glutStrokeCharacter", (const GLUTproc) glutStrokeCharacter },
112
{ "glutStrokeWidth", (const GLUTproc) glutStrokeWidth },
113
{ "glutBitmapLength", (const GLUTproc) glutBitmapLength },
114
{ "glutStrokeLength", (const GLUTproc) glutStrokeLength },
115
{ "glutWireSphere", (const GLUTproc) glutWireSphere },
116
{ "glutSolidSphere", (const GLUTproc) glutSolidSphere },
117
{ "glutWireCone", (const GLUTproc) glutWireCone },
118
{ "glutSolidCone", (const GLUTproc) glutSolidCone },
119
{ "glutWireCube", (const GLUTproc) glutWireCube },
120
{ "glutSolidCube", (const GLUTproc) glutSolidCube },
121
{ "glutWireTorus", (const GLUTproc) glutWireTorus },
122
{ "glutSolidTorus", (const GLUTproc) glutSolidTorus },
123
{ "glutWireDodecahedron", (const GLUTproc) glutWireDodecahedron },
124
{ "glutSolidDodecahedron", (const GLUTproc) glutSolidDodecahedron },
125
{ "glutWireTeapot", (const GLUTproc) glutWireTeapot },
126
{ "glutSolidTeapot", (const GLUTproc) glutSolidTeapot },
127
{ "glutWireOctahedron", (const GLUTproc) glutWireOctahedron },
128
{ "glutSolidOctahedron", (const GLUTproc) glutSolidOctahedron },
129
{ "glutWireTetrahedron", (const GLUTproc) glutWireTetrahedron },
130
{ "glutSolidTetrahedron", (const GLUTproc) glutSolidTetrahedron },
131
{ "glutWireIcosahedron", (const GLUTproc) glutWireIcosahedron },
132
{ "glutSolidIcosahedron", (const GLUTproc) glutSolidIcosahedron },
133
// { "glutVideoResizeGet", (const GLUTproc) glutVideoResizeGet },
134
// { "glutSetupVideoResizing", (const GLUTproc) glutSetupVideoResizing },
135
// { "glutStopVideoResizing", (const GLUTproc) glutStopVideoResizing },
136
// { "glutVideoResize", (const GLUTproc) glutVideoResize },
137
// { "glutVideoPan", (const GLUTproc) glutVideoPan },
138
{ "glutReportErrors", (const GLUTproc) glutReportErrors },
139
{ "glutIgnoreKeyRepeat", (const GLUTproc) glutIgnoreKeyRepeat },
140
{ "glutSetKeyRepeat", (const GLUTproc) glutSetKeyRepeat },
141
{ "glutForceJoystickFunc", (const GLUTproc) glutForceJoystickFunc },
142
{ "glutGameModeString", (const GLUTproc) glutGameModeString },
143
{ "glutEnterGameMode", (const GLUTproc) glutEnterGameMode },
144
{ "glutLeaveGameMode", (const GLUTproc) glutLeaveGameMode },
145
{ "glutGameModeGet", (const GLUTproc) glutGameModeGet },
149
GLUTproc GLUTAPIENTRY
150
glutGetProcAddress( const char *name )
154
for (i = 0; i < sizeof(glut_functions)/sizeof(glut_functions[0]); i++) {
155
if (!strcmp( name, glut_functions[i].name ))
156
return glut_functions[i].address;
159
#if DIRECTFBGL_INTERFACE_VERSION >= 1
161
void *address = NULL;
162
g_current->gl->GetProcAddress( g_current->gl, name, &address );
171
glutExtensionSupported( const char *name )
179
length = strlen( name );
180
extensions = (GLubyte*) glGetString( GL_EXTENSIONS );
182
while (extensions && *extensions) {
185
next = strchr( extensions, ' ' );
187
if (length == (int)(next - extensions)) {
188
if (!strncmp( extensions, name, length ))
194
if (!strcmp( extensions, name ))