author | Patrice Mandin <patmandin@gmail.com> |
Fri, 26 Nov 2004 16:13:24 +0000 | |
changeset 990 | 8e20c48a9c13 |
parent 910 | 4ab6d1fd028f |
child 1151 | be9c9c8f6d53 |
permissions | -rw-r--r-- |
839
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
1 |
/* |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
2 |
* Small SDL example to demonstrate dynamically loading |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
3 |
* OpenGL lib and functions |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
4 |
* |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
5 |
* (FYI it was supposed to look like snow in the wind or something...) |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
6 |
* |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
7 |
* Compile with : |
847
0afe0e38e02c
*** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents:
842
diff
changeset
|
8 |
* gcc testdyngl.c `sdl-config --libs --cflags` -o testdyngl -DHAVE_OPENGL |
839
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
9 |
* |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
10 |
* You can specify a different OpenGL lib on the command line, i.e. : |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
11 |
* ./testdyngl /usr/X11R6/lib/libGL.so.1.2 |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
12 |
* or |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
13 |
* ./testdyngl /usr/lib/libGL.so.1.0.4496 |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
14 |
* |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
15 |
*/ |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
16 |
|
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
17 |
#include <stdio.h> |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
18 |
#include <stdlib.h> |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
19 |
|
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
20 |
#include "SDL.h" |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
21 |
|
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
22 |
#ifdef HAVE_OPENGL |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
23 |
|
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
24 |
#include "SDL_opengl.h" |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
25 |
|
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
26 |
void* get_funcaddr(const char* p) |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
27 |
{ |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
28 |
void* f=SDL_GL_GetProcAddress(p); |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
29 |
if (f) |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
30 |
{ |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
31 |
return f; |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
32 |
} |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
33 |
else |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
34 |
{ |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
35 |
printf("Unable to get function pointer for %s\n",p); |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
36 |
exit(1); |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
37 |
} |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
38 |
} |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
39 |
|
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
40 |
typedef struct |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
41 |
{ |
885
9f6ad2286011
Date: Wed, 28 Apr 2004 16:52:41 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
847
diff
changeset
|
42 |
void(APIENTRY*glBegin)(GLenum); |
9f6ad2286011
Date: Wed, 28 Apr 2004 16:52:41 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
847
diff
changeset
|
43 |
void(APIENTRY*glEnd)(); |
9f6ad2286011
Date: Wed, 28 Apr 2004 16:52:41 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
847
diff
changeset
|
44 |
void(APIENTRY*glVertex3f)(GLfloat, GLfloat, GLfloat); |
9f6ad2286011
Date: Wed, 28 Apr 2004 16:52:41 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
847
diff
changeset
|
45 |
void(APIENTRY*glClearColor)(GLfloat, GLfloat, GLfloat, GLfloat); |
9f6ad2286011
Date: Wed, 28 Apr 2004 16:52:41 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
847
diff
changeset
|
46 |
void(APIENTRY*glClear)(GLbitfield); |
9f6ad2286011
Date: Wed, 28 Apr 2004 16:52:41 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
847
diff
changeset
|
47 |
void(APIENTRY*glDisable)(GLenum); |
9f6ad2286011
Date: Wed, 28 Apr 2004 16:52:41 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
847
diff
changeset
|
48 |
void(APIENTRY*glEnable)(GLenum); |
9f6ad2286011
Date: Wed, 28 Apr 2004 16:52:41 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
847
diff
changeset
|
49 |
void(APIENTRY*glColor4ub)(GLubyte,GLubyte,GLubyte,GLubyte); |
9f6ad2286011
Date: Wed, 28 Apr 2004 16:52:41 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
847
diff
changeset
|
50 |
void(APIENTRY*glPointSize)(GLfloat); |
9f6ad2286011
Date: Wed, 28 Apr 2004 16:52:41 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
847
diff
changeset
|
51 |
void(APIENTRY*glHint)(GLenum,GLenum); |
9f6ad2286011
Date: Wed, 28 Apr 2004 16:52:41 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
847
diff
changeset
|
52 |
void(APIENTRY*glBlendFunc)(GLenum,GLenum); |
9f6ad2286011
Date: Wed, 28 Apr 2004 16:52:41 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
847
diff
changeset
|
53 |
void(APIENTRY*glMatrixMode)(GLenum); |
9f6ad2286011
Date: Wed, 28 Apr 2004 16:52:41 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
847
diff
changeset
|
54 |
void(APIENTRY*glLoadIdentity)(); |
9f6ad2286011
Date: Wed, 28 Apr 2004 16:52:41 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
847
diff
changeset
|
55 |
void(APIENTRY*glOrtho)(GLdouble,GLdouble,GLdouble,GLdouble,GLdouble,GLdouble); |
9f6ad2286011
Date: Wed, 28 Apr 2004 16:52:41 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
847
diff
changeset
|
56 |
void(APIENTRY*glRotatef)(GLfloat,GLfloat,GLfloat,GLfloat); |
9f6ad2286011
Date: Wed, 28 Apr 2004 16:52:41 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
847
diff
changeset
|
57 |
void(APIENTRY*glViewport)(GLint,GLint,GLsizei,GLsizei); |
9f6ad2286011
Date: Wed, 28 Apr 2004 16:52:41 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
847
diff
changeset
|
58 |
void(APIENTRY*glFogf)(GLenum,GLfloat); |
839
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
59 |
} |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
60 |
glfuncs; |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
61 |
|
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
62 |
void init_glfuncs(glfuncs* f) |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
63 |
{ |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
64 |
f->glBegin=get_funcaddr("glBegin"); |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
65 |
f->glEnd=get_funcaddr("glEnd"); |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
66 |
f->glVertex3f=get_funcaddr("glVertex3f"); |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
67 |
f->glClearColor=get_funcaddr("glClearColor"); |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
68 |
f->glClear=get_funcaddr("glClear"); |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
69 |
f->glDisable=get_funcaddr("glDisable"); |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
70 |
f->glEnable=get_funcaddr("glEnable"); |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
71 |
f->glColor4ub=get_funcaddr("glColor4ub"); |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
72 |
f->glPointSize=get_funcaddr("glPointSize"); |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
73 |
f->glHint=get_funcaddr("glHint"); |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
74 |
f->glBlendFunc=get_funcaddr("glBlendFunc"); |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
75 |
f->glMatrixMode=get_funcaddr("glMatrixMode"); |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
76 |
f->glLoadIdentity=get_funcaddr("glLoadIdentity"); |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
77 |
f->glOrtho=get_funcaddr("glOrtho"); |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
78 |
f->glRotatef=get_funcaddr("glRotatef"); |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
79 |
f->glViewport=get_funcaddr("glViewport"); |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
80 |
f->glFogf=get_funcaddr("glFogf"); |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
81 |
} |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
82 |
|
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
83 |
#define NB_PIXELS 1000 |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
84 |
|
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
85 |
int main(int argc,char *argv[]) |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
86 |
{ |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
87 |
glfuncs f; |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
88 |
int i; |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
89 |
SDL_Event event; |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
90 |
int done=0; |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
91 |
GLfloat pixels[NB_PIXELS*3]; |
910
4ab6d1fd028f
Date: Sat, 26 Jun 2004 14:58:42 +0300
Sam Lantinga <slouken@libsdl.org>
parents:
885
diff
changeset
|
92 |
#if defined(_WIN32) |
842
0eec9985767d
Load the correct library on Windows
Sam Lantinga <slouken@libsdl.org>
parents:
839
diff
changeset
|
93 |
char *gl_library = "OpenGL32.DLL"; |
910
4ab6d1fd028f
Date: Sat, 26 Jun 2004 14:58:42 +0300
Sam Lantinga <slouken@libsdl.org>
parents:
885
diff
changeset
|
94 |
#elif defined(__QNXNTO__) |
4ab6d1fd028f
Date: Sat, 26 Jun 2004 14:58:42 +0300
Sam Lantinga <slouken@libsdl.org>
parents:
885
diff
changeset
|
95 |
char *gl_library = "libGL.so.3"; |
842
0eec9985767d
Load the correct library on Windows
Sam Lantinga <slouken@libsdl.org>
parents:
839
diff
changeset
|
96 |
#else |
0eec9985767d
Load the correct library on Windows
Sam Lantinga <slouken@libsdl.org>
parents:
839
diff
changeset
|
97 |
char *gl_library = "libGL.so.1"; |
0eec9985767d
Load the correct library on Windows
Sam Lantinga <slouken@libsdl.org>
parents:
839
diff
changeset
|
98 |
#endif |
839
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
99 |
|
842
0eec9985767d
Load the correct library on Windows
Sam Lantinga <slouken@libsdl.org>
parents:
839
diff
changeset
|
100 |
if (argv[1]) { |
0eec9985767d
Load the correct library on Windows
Sam Lantinga <slouken@libsdl.org>
parents:
839
diff
changeset
|
101 |
gl_library = argv[1]; |
839
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
102 |
} |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
103 |
|
842
0eec9985767d
Load the correct library on Windows
Sam Lantinga <slouken@libsdl.org>
parents:
839
diff
changeset
|
104 |
if (SDL_Init(SDL_INIT_VIDEO)<0) |
839
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
105 |
{ |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
106 |
printf("Unable to init SDL : %s\n",SDL_GetError()); |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
107 |
exit(1); |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
108 |
} |
990
8e20c48a9c13
Restore everything when a function pointer is NULL
Patrice Mandin <patmandin@gmail.com>
parents:
910
diff
changeset
|
109 |
|
8e20c48a9c13
Restore everything when a function pointer is NULL
Patrice Mandin <patmandin@gmail.com>
parents:
910
diff
changeset
|
110 |
atexit(SDL_Quit); |
839
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
111 |
|
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
112 |
if (SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER,1)<0) |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
113 |
{ |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
114 |
printf("Unable to set GL attribute : %s\n",SDL_GetError()); |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
115 |
exit(1); |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
116 |
} |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
117 |
|
842
0eec9985767d
Load the correct library on Windows
Sam Lantinga <slouken@libsdl.org>
parents:
839
diff
changeset
|
118 |
if (SDL_GL_LoadLibrary(gl_library)<0) |
839
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
119 |
{ |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
120 |
printf("Unable to dynamically open GL lib : %s\n",SDL_GetError()); |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
121 |
exit(1); |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
122 |
} |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
123 |
|
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
124 |
if (SDL_SetVideoMode(640,480,0,SDL_OPENGL)==NULL) |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
125 |
{ |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
126 |
printf("Unable to open video mode : %s\n",SDL_GetError()); |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
127 |
exit(1); |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
128 |
} |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
129 |
|
910
4ab6d1fd028f
Date: Sat, 26 Jun 2004 14:58:42 +0300
Sam Lantinga <slouken@libsdl.org>
parents:
885
diff
changeset
|
130 |
/* Set the window manager title bar */ |
4ab6d1fd028f
Date: Sat, 26 Jun 2004 14:58:42 +0300
Sam Lantinga <slouken@libsdl.org>
parents:
885
diff
changeset
|
131 |
SDL_WM_SetCaption( "SDL Dynamic OpenGL Loading Test", "testdyngl" ); |
4ab6d1fd028f
Date: Sat, 26 Jun 2004 14:58:42 +0300
Sam Lantinga <slouken@libsdl.org>
parents:
885
diff
changeset
|
132 |
|
839
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
133 |
init_glfuncs(&f); |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
134 |
|
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
135 |
for(i=0;i<NB_PIXELS;i++) |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
136 |
{ |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
137 |
pixels[3*i]=rand()%250-125; |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
138 |
pixels[3*i+1]=rand()%250-125; |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
139 |
pixels[3*i+2]=rand()%250-125; |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
140 |
} |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
141 |
|
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
142 |
f.glViewport(0,0,640,480); |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
143 |
|
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
144 |
f.glMatrixMode(GL_PROJECTION); |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
145 |
f.glLoadIdentity(); |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
146 |
f.glOrtho(-100,100,-100,100,-500,500); |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
147 |
|
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
148 |
f.glMatrixMode(GL_MODELVIEW); |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
149 |
f.glLoadIdentity(); |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
150 |
|
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
151 |
f.glEnable(GL_DEPTH_TEST); |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
152 |
f.glDisable(GL_TEXTURE_2D); |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
153 |
f.glEnable(GL_BLEND); |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
154 |
f.glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
155 |
|
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
156 |
f.glClearColor(0.0f,0.0f,0.0f,0.0f); |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
157 |
f.glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
158 |
|
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
159 |
f.glEnable(GL_POINT_SMOOTH); |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
160 |
f.glHint(GL_POINT_SMOOTH_HINT,GL_NICEST); |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
161 |
f.glPointSize(5.0f); |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
162 |
f.glEnable(GL_FOG); |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
163 |
f.glFogf(GL_FOG_START,-500); |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
164 |
f.glFogf(GL_FOG_END,500); |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
165 |
f.glFogf(GL_FOG_DENSITY,0.005); |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
166 |
|
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
167 |
do |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
168 |
{ |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
169 |
f.glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
170 |
|
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
171 |
f.glRotatef(2.0,1.0,1.0,1.0); |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
172 |
f.glRotatef(1.0,0.0,1.0,1.0); |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
173 |
|
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
174 |
f.glColor4ub(255,255,255,255); |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
175 |
f.glBegin(GL_POINTS); |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
176 |
for(i=0;i<NB_PIXELS;i++) |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
177 |
{ |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
178 |
f.glVertex3f(pixels[3*i],pixels[3*i+1],pixels[3*i+2]); |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
179 |
} |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
180 |
f.glEnd(); |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
181 |
SDL_GL_SwapBuffers(); |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
182 |
|
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
183 |
while(SDL_PollEvent(&event)) |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
184 |
{ |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
185 |
if(event.type & SDL_KEYDOWN) |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
186 |
done=1; |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
187 |
} |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
188 |
|
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
189 |
SDL_Delay(20); |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
190 |
} |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
191 |
while(!done); |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
192 |
|
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
193 |
SDL_Quit(); |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
194 |
return 0; |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
195 |
} |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
196 |
|
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
197 |
#else /* HAVE_OPENGL */ |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
198 |
|
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
199 |
int main(int argc, char *argv[]) |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
200 |
{ |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
201 |
printf("No OpenGL support on this system\n"); |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
202 |
return 1; |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
203 |
} |
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
204 |
|
7b255f0290da
Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
205 |
#endif /* HAVE_OPENGL */ |