EGL: implement fgPlatformGetProcAddress
[freeglut] / src / x11 / fg_ext_x11.c
1 /*
2  * freeglut_ext.c
3  *
4  * Functions related to OpenGL extensions.
5  *
6  * Copyright (c) 1999-2000 Pawel W. Olszta. All Rights Reserved.
7  * Written by Pawel W. Olszta, <olszta@sourceforge.net>
8  * Copied for Platform code by Evan Felix <karcaw at gmail.com>
9  * Creation date: Thur Feb 2 2012
10  *
11  * Permission is hereby granted, free of charge, to any person obtaining a
12  * copy of this software and associated documentation files (the "Software"),
13  * to deal in the Software without restriction, including without limitation
14  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
15  * and/or sell copies of the Software, and to permit persons to whom the
16  * Software is furnished to do so, subject to the following conditions:
17  *
18  * The above copyright notice and this permission notice shall be included
19  * in all copies or substantial portions of the Software.
20  *
21  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
22  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
23  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
24  * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
25  * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
26  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
27  */
28
29 #define GLX_GLXEXT_PROTOTYPES
30 #include <GL/freeglut.h>
31 #include "../fg_internal.h"
32
33 GLUTproc fgPlatformGetGLUTProcAddress( const char* procName )
34 {
35     /* optimization: quick initial check */
36     if( strncmp( procName, "glut", 4 ) != 0 )
37         return NULL;
38
39 #define CHECK_NAME(x) if( strcmp( procName, #x ) == 0) return (GLUTproc)x;
40     CHECK_NAME(glutJoystickFunc);
41     CHECK_NAME(glutForceJoystickFunc);
42     CHECK_NAME(glutGameModeString);
43     CHECK_NAME(glutEnterGameMode);
44     CHECK_NAME(glutLeaveGameMode);
45     CHECK_NAME(glutGameModeGet);
46 #undef CHECK_NAME
47
48     return NULL;
49 }
50
51
52 #ifndef EGL_VERSION_1_0
53 SFG_Proc fgPlatformGetProcAddress( const char *procName )
54 {
55 #if defined( GLX_ARB_get_proc_address )
56     return (SFG_Proc)glXGetProcAddressARB( ( const GLubyte * )procName );
57 #else
58     return NULL;
59 #endif
60 }
61 #endif