annotate test/testgl.c @ 1257:448a9a64537b

[PATCH] SDL_GetVideoMode() does not find best mode, part 2 Following commit 1.51, I come accross a problem when SDL must choose between several video modes that could suit the one asked. If I ask 320x240 with this list: 768x480 768x240 640x400 640x200 384x480 384x240 320x400 320x200 The smallest selectables modes are 384x240 and 320x400. And SDL choose the later in this list, but 384x240 is more suitable. So I added a check to compare the pixel count (surface) of modes, and select the one which has the smallest pixel count. In my example, 384x240 has 92160 pixels, and 320x400 has 128000 pixels. So now SDL will choose 384x240 for the asked 320x240 mode.
author Patrice Mandin <patmandin@gmail.com>
date Thu, 19 Jan 2006 21:28:52 +0000
parents 4272450dd8d0
children 670e74bf5cc8
rev   line source
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
1 #include <stdlib.h>
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
2 #include <stdio.h>
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
3 #include <string.h>
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
4 #include <math.h>
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
5
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
6 #include "SDL.h"
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
7
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
8 #ifdef HAVE_OPENGL
234
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
9
214
0e5d6dd77bda Added platform independent OpenGL header - SDL_opengl.h
Sam Lantinga <slouken@libsdl.org>
parents: 0
diff changeset
10 #include "SDL_opengl.h"
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
11
234
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
12 /* Undefine this if you want a flat cube instead of a rainbow cube */
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
13 #define SHADED_CUBE
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
14
234
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
15 /* Define this to be the name of the logo image to use with -logo */
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
16 #define LOGO_FILE "icon.bmp"
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
17
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
18 /* The SDL_OPENGLBLIT interface is deprecated.
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
19 The code is still available for benchmark purposes though.
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
20 */
492
c59692dcdce0 *** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents: 363
diff changeset
21
233
5b42a7f5fab3 SDL_OPENGLBLIT is deprecated, show the "right way" of doing things
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
22 static SDL_bool USE_DEPRECATED_OPENGLBLIT = SDL_FALSE;
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
23
492
c59692dcdce0 *** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents: 363
diff changeset
24 static SDL_Surface *global_image = NULL;
c59692dcdce0 *** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents: 363
diff changeset
25 static GLuint global_texture = 0;
933
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
26 static GLuint cursor_texture = 0;
492
c59692dcdce0 *** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents: 363
diff changeset
27
234
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
28 /**********************************************************************/
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
29
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
30 void HotKey_ToggleFullScreen(void)
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
31 {
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
32 SDL_Surface *screen;
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
33
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
34 screen = SDL_GetVideoSurface();
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
35 if ( SDL_WM_ToggleFullScreen(screen) ) {
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
36 printf("Toggled fullscreen mode - now %s\n",
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
37 (screen->flags&SDL_FULLSCREEN) ? "fullscreen" : "windowed");
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
38 } else {
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
39 printf("Unable to toggle fullscreen mode\n");
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
40 }
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
41 }
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
42
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
43 void HotKey_ToggleGrab(void)
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
44 {
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
45 SDL_GrabMode mode;
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
46
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
47 printf("Ctrl-G: toggling input grab!\n");
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
48 mode = SDL_WM_GrabInput(SDL_GRAB_QUERY);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
49 if ( mode == SDL_GRAB_ON ) {
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
50 printf("Grab was on\n");
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
51 } else {
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
52 printf("Grab was off\n");
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
53 }
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
54 mode = SDL_WM_GrabInput(!mode);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
55 if ( mode == SDL_GRAB_ON ) {
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
56 printf("Grab is now on\n");
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
57 } else {
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
58 printf("Grab is now off\n");
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
59 }
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
60 }
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
61
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
62 void HotKey_Iconify(void)
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
63 {
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
64 printf("Ctrl-Z: iconifying window!\n");
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
65 SDL_WM_IconifyWindow();
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
66 }
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
67
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
68 int HandleEvent(SDL_Event *event)
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
69 {
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
70 int done;
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
71
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
72 done = 0;
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
73 switch( event->type ) {
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
74 case SDL_ACTIVEEVENT:
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
75 /* See what happened */
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
76 printf( "app %s ", event->active.gain ? "gained" : "lost" );
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
77 if ( event->active.state & SDL_APPACTIVE ) {
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
78 printf( "active " );
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
79 } else if ( event->active.state & SDL_APPMOUSEFOCUS ) {
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
80 printf( "mouse " );
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
81 } else if ( event->active.state & SDL_APPINPUTFOCUS ) {
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
82 printf( "input " );
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
83 }
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
84 printf( "focus\n" );
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
85 break;
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
86
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
87
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
88 case SDL_KEYDOWN:
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
89 if ( event->key.keysym.sym == SDLK_ESCAPE ) {
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
90 done = 1;
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
91 }
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
92 if ( (event->key.keysym.sym == SDLK_g) &&
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
93 (event->key.keysym.mod & KMOD_CTRL) ) {
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
94 HotKey_ToggleGrab();
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
95 }
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
96 if ( (event->key.keysym.sym == SDLK_z) &&
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
97 (event->key.keysym.mod & KMOD_CTRL) ) {
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
98 HotKey_Iconify();
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
99 }
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
100 if ( (event->key.keysym.sym == SDLK_RETURN) &&
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
101 (event->key.keysym.mod & KMOD_ALT) ) {
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
102 HotKey_ToggleFullScreen();
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
103 }
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
104 printf("key '%s' pressed\n",
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
105 SDL_GetKeyName(event->key.keysym.sym));
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
106 break;
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
107 case SDL_QUIT:
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
108 done = 1;
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
109 break;
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
110 }
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
111 return(done);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
112 }
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
113
233
5b42a7f5fab3 SDL_OPENGLBLIT is deprecated, show the "right way" of doing things
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
114 void SDL_GL_Enter2DMode()
5b42a7f5fab3 SDL_OPENGLBLIT is deprecated, show the "right way" of doing things
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
115 {
5b42a7f5fab3 SDL_OPENGLBLIT is deprecated, show the "right way" of doing things
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
116 SDL_Surface *screen = SDL_GetVideoSurface();
5b42a7f5fab3 SDL_OPENGLBLIT is deprecated, show the "right way" of doing things
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
117
5b42a7f5fab3 SDL_OPENGLBLIT is deprecated, show the "right way" of doing things
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
118 /* Note, there may be other things you need to change,
5b42a7f5fab3 SDL_OPENGLBLIT is deprecated, show the "right way" of doing things
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
119 depending on how you have your OpenGL state set up.
5b42a7f5fab3 SDL_OPENGLBLIT is deprecated, show the "right way" of doing things
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
120 */
5b42a7f5fab3 SDL_OPENGLBLIT is deprecated, show the "right way" of doing things
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
121 glPushAttrib(GL_ENABLE_BIT);
5b42a7f5fab3 SDL_OPENGLBLIT is deprecated, show the "right way" of doing things
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
122 glDisable(GL_DEPTH_TEST);
5b42a7f5fab3 SDL_OPENGLBLIT is deprecated, show the "right way" of doing things
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
123 glDisable(GL_CULL_FACE);
5b42a7f5fab3 SDL_OPENGLBLIT is deprecated, show the "right way" of doing things
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
124 glEnable(GL_TEXTURE_2D);
5b42a7f5fab3 SDL_OPENGLBLIT is deprecated, show the "right way" of doing things
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
125
243
cf4944faad96 Fixed testgl so that SDL_GL_Enter2DMode() allows alpha blending
Sam Lantinga <slouken@libsdl.org>
parents: 234
diff changeset
126 /* This allows alpha blending of 2D textures with the scene */
cf4944faad96 Fixed testgl so that SDL_GL_Enter2DMode() allows alpha blending
Sam Lantinga <slouken@libsdl.org>
parents: 234
diff changeset
127 glEnable(GL_BLEND);
cf4944faad96 Fixed testgl so that SDL_GL_Enter2DMode() allows alpha blending
Sam Lantinga <slouken@libsdl.org>
parents: 234
diff changeset
128 glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
cf4944faad96 Fixed testgl so that SDL_GL_Enter2DMode() allows alpha blending
Sam Lantinga <slouken@libsdl.org>
parents: 234
diff changeset
129
233
5b42a7f5fab3 SDL_OPENGLBLIT is deprecated, show the "right way" of doing things
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
130 glViewport(0, 0, screen->w, screen->h);
5b42a7f5fab3 SDL_OPENGLBLIT is deprecated, show the "right way" of doing things
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
131
5b42a7f5fab3 SDL_OPENGLBLIT is deprecated, show the "right way" of doing things
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
132 glMatrixMode(GL_PROJECTION);
5b42a7f5fab3 SDL_OPENGLBLIT is deprecated, show the "right way" of doing things
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
133 glPushMatrix();
5b42a7f5fab3 SDL_OPENGLBLIT is deprecated, show the "right way" of doing things
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
134 glLoadIdentity();
5b42a7f5fab3 SDL_OPENGLBLIT is deprecated, show the "right way" of doing things
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
135
5b42a7f5fab3 SDL_OPENGLBLIT is deprecated, show the "right way" of doing things
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
136 glOrtho(0.0, (GLdouble)screen->w, (GLdouble)screen->h, 0.0, 0.0, 1.0);
5b42a7f5fab3 SDL_OPENGLBLIT is deprecated, show the "right way" of doing things
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
137
5b42a7f5fab3 SDL_OPENGLBLIT is deprecated, show the "right way" of doing things
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
138 glMatrixMode(GL_MODELVIEW);
5b42a7f5fab3 SDL_OPENGLBLIT is deprecated, show the "right way" of doing things
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
139 glPushMatrix();
5b42a7f5fab3 SDL_OPENGLBLIT is deprecated, show the "right way" of doing things
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
140 glLoadIdentity();
5b42a7f5fab3 SDL_OPENGLBLIT is deprecated, show the "right way" of doing things
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
141
5b42a7f5fab3 SDL_OPENGLBLIT is deprecated, show the "right way" of doing things
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
142 glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL);
5b42a7f5fab3 SDL_OPENGLBLIT is deprecated, show the "right way" of doing things
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
143 }
5b42a7f5fab3 SDL_OPENGLBLIT is deprecated, show the "right way" of doing things
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
144
5b42a7f5fab3 SDL_OPENGLBLIT is deprecated, show the "right way" of doing things
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
145 void SDL_GL_Leave2DMode()
5b42a7f5fab3 SDL_OPENGLBLIT is deprecated, show the "right way" of doing things
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
146 {
5b42a7f5fab3 SDL_OPENGLBLIT is deprecated, show the "right way" of doing things
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
147 glMatrixMode(GL_MODELVIEW);
5b42a7f5fab3 SDL_OPENGLBLIT is deprecated, show the "right way" of doing things
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
148 glPopMatrix();
5b42a7f5fab3 SDL_OPENGLBLIT is deprecated, show the "right way" of doing things
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
149
5b42a7f5fab3 SDL_OPENGLBLIT is deprecated, show the "right way" of doing things
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
150 glMatrixMode(GL_PROJECTION);
5b42a7f5fab3 SDL_OPENGLBLIT is deprecated, show the "right way" of doing things
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
151 glPopMatrix();
5b42a7f5fab3 SDL_OPENGLBLIT is deprecated, show the "right way" of doing things
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
152
5b42a7f5fab3 SDL_OPENGLBLIT is deprecated, show the "right way" of doing things
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
153 glPopAttrib();
5b42a7f5fab3 SDL_OPENGLBLIT is deprecated, show the "right way" of doing things
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
154 }
5b42a7f5fab3 SDL_OPENGLBLIT is deprecated, show the "right way" of doing things
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
155
234
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
156 /* Quick utility function for texture creation */
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
157 static int power_of_two(int input)
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
158 {
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
159 int value = 1;
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
160
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
161 while ( value < input ) {
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
162 value <<= 1;
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
163 }
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
164 return value;
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
165 }
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
166
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
167 GLuint SDL_GL_LoadTexture(SDL_Surface *surface, GLfloat *texcoord)
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
168 {
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
169 GLuint texture;
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
170 int w, h;
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
171 SDL_Surface *image;
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
172 SDL_Rect area;
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
173 Uint32 saved_flags;
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
174 Uint8 saved_alpha;
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
175
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
176 /* Use the surface width and height expanded to powers of 2 */
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
177 w = power_of_two(surface->w);
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
178 h = power_of_two(surface->h);
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
179 texcoord[0] = 0.0f; /* Min X */
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
180 texcoord[1] = 0.0f; /* Min Y */
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
181 texcoord[2] = (GLfloat)surface->w / w; /* Max X */
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
182 texcoord[3] = (GLfloat)surface->h / h; /* Max Y */
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
183
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
184 image = SDL_CreateRGBSurface(
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
185 SDL_SWSURFACE,
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
186 w, h,
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
187 32,
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
188 #if SDL_BYTEORDER == SDL_LIL_ENDIAN /* OpenGL RGBA masks */
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
189 0x000000FF,
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
190 0x0000FF00,
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
191 0x00FF0000,
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
192 0xFF000000
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
193 #else
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
194 0xFF000000,
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
195 0x00FF0000,
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
196 0x0000FF00,
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
197 0x000000FF
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
198 #endif
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
199 );
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
200 if ( image == NULL ) {
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
201 return 0;
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
202 }
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
203
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
204 /* Save the alpha blending attributes */
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
205 saved_flags = surface->flags&(SDL_SRCALPHA|SDL_RLEACCELOK);
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
206 saved_alpha = surface->format->alpha;
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
207 if ( (saved_flags & SDL_SRCALPHA) == SDL_SRCALPHA ) {
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
208 SDL_SetAlpha(surface, 0, 0);
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
209 }
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
210
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
211 /* Copy the surface into the GL texture image */
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
212 area.x = 0;
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
213 area.y = 0;
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
214 area.w = surface->w;
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
215 area.h = surface->h;
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
216 SDL_BlitSurface(surface, &area, image, &area);
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
217
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
218 /* Restore the alpha blending attributes */
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
219 if ( (saved_flags & SDL_SRCALPHA) == SDL_SRCALPHA ) {
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
220 SDL_SetAlpha(surface, saved_flags, saved_alpha);
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
221 }
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
222
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
223 /* Create an OpenGL texture for the image */
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
224 glGenTextures(1, &texture);
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
225 glBindTexture(GL_TEXTURE_2D, texture);
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
226 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
227 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
228 glTexImage2D(GL_TEXTURE_2D,
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
229 0,
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
230 GL_RGBA,
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
231 w, h,
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
232 0,
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
233 GL_RGBA,
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
234 GL_UNSIGNED_BYTE,
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
235 image->pixels);
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
236 SDL_FreeSurface(image); /* No longer needed */
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
237
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
238 return texture;
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
239 }
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
240
933
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
241 void DrawLogoCursor(void)
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
242 {
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
243 static GLfloat texMinX, texMinY;
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
244 static GLfloat texMaxX, texMaxY;
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
245 static int w, h;
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
246 int x, y;
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
247
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
248 SDL_Surface *screen = SDL_GetVideoSurface();
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
249
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
250 if ( ! cursor_texture ) {
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
251 SDL_Surface *image;
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
252 GLfloat texcoord[4];
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
253
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
254 /* Load the image (could use SDL_image library here) */
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
255 image = SDL_LoadBMP(LOGO_FILE);
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
256 if ( image == NULL ) {
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
257 return;
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
258 }
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
259 w = image->w;
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
260 h = image->h;
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
261
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
262 /* Convert the image into an OpenGL texture */
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
263 cursor_texture = SDL_GL_LoadTexture(image, texcoord);
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
264
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
265 /* Make texture coordinates easy to understand */
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
266 texMinX = texcoord[0];
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
267 texMinY = texcoord[1];
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
268 texMaxX = texcoord[2];
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
269 texMaxY = texcoord[3];
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
270
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
271 /* We don't need the original image anymore */
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
272 SDL_FreeSurface(image);
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
273
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
274 /* Make sure that the texture conversion is okay */
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
275 if ( ! cursor_texture ) {
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
276 return;
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
277 }
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
278 }
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
279
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
280 /* Move the image around */
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
281 SDL_GetMouseState(&x, &y);
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
282 x -= w/2;
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
283 y -= h/2;
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
284
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
285 /* Show the image on the screen */
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
286 SDL_GL_Enter2DMode();
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
287 glBindTexture(GL_TEXTURE_2D, cursor_texture);
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
288 glBegin(GL_TRIANGLE_STRIP);
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
289 glTexCoord2f(texMinX, texMinY); glVertex2i(x, y );
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
290 glTexCoord2f(texMaxX, texMinY); glVertex2i(x+w, y );
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
291 glTexCoord2f(texMinX, texMaxY); glVertex2i(x, y+h);
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
292 glTexCoord2f(texMaxX, texMaxY); glVertex2i(x+w, y+h);
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
293 glEnd();
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
294 SDL_GL_Leave2DMode();
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
295 }
492
c59692dcdce0 *** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents: 363
diff changeset
296
234
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
297 void DrawLogoTexture(void)
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
298 {
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
299 static GLfloat texMinX, texMinY;
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
300 static GLfloat texMaxX, texMaxY;
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
301 static int x = 0;
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
302 static int y = 0;
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
303 static int w, h;
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
304 static int delta_x = 1;
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
305 static int delta_y = 1;
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
306 static Uint32 last_moved = 0;
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
307
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
308 SDL_Surface *screen = SDL_GetVideoSurface();
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
309
492
c59692dcdce0 *** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents: 363
diff changeset
310 if ( ! global_texture ) {
234
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
311 SDL_Surface *image;
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
312 GLfloat texcoord[4];
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
313
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
314 /* Load the image (could use SDL_image library here) */
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
315 image = SDL_LoadBMP(LOGO_FILE);
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
316 if ( image == NULL ) {
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
317 return;
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
318 }
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
319 w = image->w;
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
320 h = image->h;
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
321
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
322 /* Convert the image into an OpenGL texture */
492
c59692dcdce0 *** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents: 363
diff changeset
323 global_texture = SDL_GL_LoadTexture(image, texcoord);
234
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
324
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
325 /* Make texture coordinates easy to understand */
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
326 texMinX = texcoord[0];
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
327 texMinY = texcoord[1];
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
328 texMaxX = texcoord[2];
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
329 texMaxY = texcoord[3];
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
330
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
331 /* We don't need the original image anymore */
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
332 SDL_FreeSurface(image);
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
333
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
334 /* Make sure that the texture conversion is okay */
492
c59692dcdce0 *** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents: 363
diff changeset
335 if ( ! global_texture ) {
234
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
336 return;
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
337 }
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
338 }
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
339
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
340 /* Move the image around */
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
341 x += delta_x;
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
342 if ( x < 0 ) {
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
343 x = 0;
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
344 delta_x = -delta_x;
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
345 } else
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
346 if ( (x+w) > screen->w ) {
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
347 x = screen->w-w;
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
348 delta_x = -delta_x;
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
349 }
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
350 y += delta_y;
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
351 if ( y < 0 ) {
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
352 y = 0;
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
353 delta_y = -delta_y;
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
354 } else
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
355 if ( (y+h) > screen->h ) {
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
356 y = screen->h-h;
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
357 delta_y = -delta_y;
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
358 }
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
359
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
360 /* Show the image on the screen */
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
361 SDL_GL_Enter2DMode();
492
c59692dcdce0 *** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents: 363
diff changeset
362 glBindTexture(GL_TEXTURE_2D, global_texture);
234
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
363 glBegin(GL_TRIANGLE_STRIP);
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
364 glTexCoord2f(texMinX, texMinY); glVertex2i(x, y );
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
365 glTexCoord2f(texMaxX, texMinY); glVertex2i(x+w, y );
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
366 glTexCoord2f(texMinX, texMaxY); glVertex2i(x, y+h);
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
367 glTexCoord2f(texMaxX, texMaxY); glVertex2i(x+w, y+h);
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
368 glEnd();
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
369 SDL_GL_Leave2DMode();
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
370 }
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
371
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
372 /* This code is deprecated, but available for speed comparisons */
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
373 void DrawLogoBlit(void)
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
374 {
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
375 static int x = 0;
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
376 static int y = 0;
233
5b42a7f5fab3 SDL_OPENGLBLIT is deprecated, show the "right way" of doing things
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
377 static int w, h;
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
378 static int delta_x = 1;
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
379 static int delta_y = 1;
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
380 static Uint32 last_moved = 0;
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
381
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
382 SDL_Rect dst;
234
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
383 SDL_Surface *screen = SDL_GetVideoSurface();
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
384
492
c59692dcdce0 *** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents: 363
diff changeset
385 if ( global_image == NULL ) {
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
386 SDL_Surface *temp;
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
387
234
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
388 /* Load the image (could use SDL_image library here) */
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
389 temp = SDL_LoadBMP(LOGO_FILE);
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
390 if ( temp == NULL ) {
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
391 return;
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
392 }
234
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
393 w = temp->w;
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
394 h = temp->h;
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
395
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
396 /* Convert the image into the screen format */
492
c59692dcdce0 *** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents: 363
diff changeset
397 global_image = SDL_CreateRGBSurface(
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
398 SDL_SWSURFACE,
234
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
399 w, h,
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
400 screen->format->BitsPerPixel,
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
401 screen->format->Rmask,
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
402 screen->format->Gmask,
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
403 screen->format->Bmask,
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
404 screen->format->Amask);
492
c59692dcdce0 *** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents: 363
diff changeset
405 if ( global_image ) {
c59692dcdce0 *** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents: 363
diff changeset
406 SDL_BlitSurface(temp, NULL, global_image, NULL);
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
407 }
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
408 SDL_FreeSurface(temp);
234
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
409
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
410 /* Make sure that the texture conversion is okay */
492
c59692dcdce0 *** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents: 363
diff changeset
411 if ( ! global_image ) {
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
412 return;
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
413 }
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
414 }
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
415
234
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
416 /* Move the image around
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
417 Note that we do not clear the old position. This is because we
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
418 perform a glClear() which clears the framebuffer and then only
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
419 update the new area.
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
420 Note that you can also achieve interesting effects by modifying
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
421 the screen surface alpha channel. It's set to 255 by default..
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
422 */
234
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
423 x += delta_x;
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
424 if ( x < 0 ) {
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
425 x = 0;
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
426 delta_x = -delta_x;
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
427 } else
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
428 if ( (x+w) > screen->w ) {
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
429 x = screen->w-w;
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
430 delta_x = -delta_x;
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
431 }
234
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
432 y += delta_y;
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
433 if ( y < 0 ) {
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
434 y = 0;
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
435 delta_y = -delta_y;
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
436 } else
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
437 if ( (y+h) > screen->h ) {
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
438 y = screen->h-h;
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
439 delta_y = -delta_y;
233
5b42a7f5fab3 SDL_OPENGLBLIT is deprecated, show the "right way" of doing things
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
440 }
234
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
441 dst.x = x;
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
442 dst.y = y;
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
443 dst.w = w;
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
444 dst.h = h;
492
c59692dcdce0 *** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents: 363
diff changeset
445 SDL_BlitSurface(global_image, NULL, screen, &dst);
234
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
446
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
447 /* Show the image on the screen */
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
448 SDL_UpdateRects(screen, 1, &dst);
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
449 }
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
450
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
451 int RunGLTest( int argc, char* argv[],
933
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
452 int logo, int logocursor, int slowly, int bpp, float gamma, int noframe, int fsaa )
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
453 {
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
454 int i;
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
455 int rgb_size[3];
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
456 int w = 640;
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
457 int h = 480;
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
458 int done = 0;
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
459 int frames;
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
460 Uint32 start_time, this_time;
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
461 float color[8][3]= {{ 1.0, 1.0, 0.0},
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
462 { 1.0, 0.0, 0.0},
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
463 { 0.0, 0.0, 0.0},
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
464 { 0.0, 1.0, 0.0},
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
465 { 0.0, 1.0, 1.0},
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
466 { 1.0, 1.0, 1.0},
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
467 { 1.0, 0.0, 1.0},
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
468 { 0.0, 0.0, 1.0}};
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
469 float cube[8][3]= {{ 0.5, 0.5, -0.5},
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
470 { 0.5, -0.5, -0.5},
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
471 {-0.5, -0.5, -0.5},
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
472 {-0.5, 0.5, -0.5},
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
473 {-0.5, 0.5, 0.5},
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
474 { 0.5, 0.5, 0.5},
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
475 { 0.5, -0.5, 0.5},
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
476 {-0.5, -0.5, 0.5}};
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
477 Uint32 video_flags;
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
478 int value;
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
479
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
480 if( SDL_Init( SDL_INIT_VIDEO ) < 0 ) {
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
481 fprintf(stderr,"Couldn't initialize SDL: %s\n",SDL_GetError());
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
482 exit( 1 );
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
483 }
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
484
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
485 /* See if we should detect the display depth */
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
486 if ( bpp == 0 ) {
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
487 if ( SDL_GetVideoInfo()->vfmt->BitsPerPixel <= 8 ) {
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
488 bpp = 8;
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
489 } else {
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
490 bpp = 16; /* More doesn't seem to work */
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
491 }
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
492 }
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
493
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
494 /* Set the flags we want to use for setting the video mode */
233
5b42a7f5fab3 SDL_OPENGLBLIT is deprecated, show the "right way" of doing things
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
495 if ( logo && USE_DEPRECATED_OPENGLBLIT ) {
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
496 video_flags = SDL_OPENGLBLIT;
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
497 } else {
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
498 video_flags = SDL_OPENGL;
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
499 }
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
500 for ( i=1; argv[i]; ++i ) {
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
501 if ( strcmp(argv[1], "-fullscreen") == 0 ) {
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
502 video_flags |= SDL_FULLSCREEN;
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
503 }
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
504 }
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
505
320
66f815c147ed Date: Thu, 28 Mar 2002 09:20:03 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 243
diff changeset
506 if (noframe) {
66f815c147ed Date: Thu, 28 Mar 2002 09:20:03 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 243
diff changeset
507 video_flags |= SDL_NOFRAME;
66f815c147ed Date: Thu, 28 Mar 2002 09:20:03 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 243
diff changeset
508 }
66f815c147ed Date: Thu, 28 Mar 2002 09:20:03 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 243
diff changeset
509
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
510 /* Initialize the display */
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
511 switch (bpp) {
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
512 case 8:
363
ca0b4ba5313e Date: Thu, 18 Apr 2002 13:50:53 -0700
Sam Lantinga <slouken@libsdl.org>
parents: 320
diff changeset
513 rgb_size[0] = 3;
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
514 rgb_size[1] = 3;
363
ca0b4ba5313e Date: Thu, 18 Apr 2002 13:50:53 -0700
Sam Lantinga <slouken@libsdl.org>
parents: 320
diff changeset
515 rgb_size[2] = 2;
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
516 break;
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
517 case 15:
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
518 case 16:
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
519 rgb_size[0] = 5;
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
520 rgb_size[1] = 5;
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
521 rgb_size[2] = 5;
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
522 break;
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
523 default:
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
524 rgb_size[0] = 8;
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
525 rgb_size[1] = 8;
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
526 rgb_size[2] = 8;
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
527 break;
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
528 }
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
529 SDL_GL_SetAttribute( SDL_GL_RED_SIZE, rgb_size[0] );
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
530 SDL_GL_SetAttribute( SDL_GL_GREEN_SIZE, rgb_size[1] );
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
531 SDL_GL_SetAttribute( SDL_GL_BLUE_SIZE, rgb_size[2] );
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
532 SDL_GL_SetAttribute( SDL_GL_DEPTH_SIZE, 16 );
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
533 SDL_GL_SetAttribute( SDL_GL_DOUBLEBUFFER, 1 );
655
9c42ee1b7d77 Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents: 492
diff changeset
534 if ( fsaa ) {
656
864e2d2a9a55 Merged in Ryan's multisample code for MacOS, and changed the constants to match.
Sam Lantinga <slouken@libsdl.org>
parents: 655
diff changeset
535 SDL_GL_SetAttribute( SDL_GL_MULTISAMPLEBUFFERS, 1 );
864e2d2a9a55 Merged in Ryan's multisample code for MacOS, and changed the constants to match.
Sam Lantinga <slouken@libsdl.org>
parents: 655
diff changeset
536 SDL_GL_SetAttribute( SDL_GL_MULTISAMPLESAMPLES, fsaa );
655
9c42ee1b7d77 Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents: 492
diff changeset
537 }
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
538 if ( SDL_SetVideoMode( w, h, bpp, video_flags ) == NULL ) {
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
539 fprintf(stderr, "Couldn't set GL mode: %s\n", SDL_GetError());
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
540 SDL_Quit();
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
541 exit(1);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
542 }
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
543
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
544 printf("Screen BPP: %d\n", SDL_GetVideoSurface()->format->BitsPerPixel);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
545 printf("\n");
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
546 printf( "Vendor : %s\n", glGetString( GL_VENDOR ) );
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
547 printf( "Renderer : %s\n", glGetString( GL_RENDERER ) );
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
548 printf( "Version : %s\n", glGetString( GL_VERSION ) );
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
549 printf( "Extensions : %s\n", glGetString( GL_EXTENSIONS ) );
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
550 printf("\n");
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
551
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
552 SDL_GL_GetAttribute( SDL_GL_RED_SIZE, &value );
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
553 printf( "SDL_GL_RED_SIZE: requested %d, got %d\n", rgb_size[0],value);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
554 SDL_GL_GetAttribute( SDL_GL_GREEN_SIZE, &value );
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
555 printf( "SDL_GL_GREEN_SIZE: requested %d, got %d\n", rgb_size[1],value);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
556 SDL_GL_GetAttribute( SDL_GL_BLUE_SIZE, &value );
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
557 printf( "SDL_GL_BLUE_SIZE: requested %d, got %d\n", rgb_size[2],value);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
558 SDL_GL_GetAttribute( SDL_GL_DEPTH_SIZE, &value );
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
559 printf( "SDL_GL_DEPTH_SIZE: requested %d, got %d\n", bpp, value );
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
560 SDL_GL_GetAttribute( SDL_GL_DOUBLEBUFFER, &value );
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
561 printf( "SDL_GL_DOUBLEBUFFER: requested 1, got %d\n", value );
655
9c42ee1b7d77 Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents: 492
diff changeset
562 if ( fsaa ) {
656
864e2d2a9a55 Merged in Ryan's multisample code for MacOS, and changed the constants to match.
Sam Lantinga <slouken@libsdl.org>
parents: 655
diff changeset
563 SDL_GL_GetAttribute( SDL_GL_MULTISAMPLEBUFFERS, &value );
864e2d2a9a55 Merged in Ryan's multisample code for MacOS, and changed the constants to match.
Sam Lantinga <slouken@libsdl.org>
parents: 655
diff changeset
564 printf( "SDL_GL_MULTISAMPLEBUFFERS: requested 1, got %d\n", value );
864e2d2a9a55 Merged in Ryan's multisample code for MacOS, and changed the constants to match.
Sam Lantinga <slouken@libsdl.org>
parents: 655
diff changeset
565 SDL_GL_GetAttribute( SDL_GL_MULTISAMPLESAMPLES, &value );
864e2d2a9a55 Merged in Ryan's multisample code for MacOS, and changed the constants to match.
Sam Lantinga <slouken@libsdl.org>
parents: 655
diff changeset
566 printf( "SDL_GL_MULTISAMPLESAMPLES: requested %d, got %d\n", fsaa, value );
655
9c42ee1b7d77 Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents: 492
diff changeset
567 }
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
568
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
569 /* Set the window manager title bar */
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
570 SDL_WM_SetCaption( "SDL GL test", "testgl" );
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
571
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
572 /* Set the gamma for the window */
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
573 if ( gamma != 0.0 ) {
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
574 SDL_SetGamma(gamma, gamma, gamma);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
575 }
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
576
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
577 glViewport( 0, 0, w, h );
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
578 glMatrixMode( GL_PROJECTION );
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
579 glLoadIdentity( );
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
580
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
581 glOrtho( -2.0, 2.0, -2.0, 2.0, -20.0, 20.0 );
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
582
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
583 glMatrixMode( GL_MODELVIEW );
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
584 glLoadIdentity( );
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
585
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
586 glEnable(GL_DEPTH_TEST);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
587
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
588 glDepthFunc(GL_LESS);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
589
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
590 glShadeModel(GL_SMOOTH);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
591
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
592 /* Loop until done. */
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
593 start_time = SDL_GetTicks();
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
594 frames = 0;
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
595 while( !done ) {
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
596 GLenum gl_error;
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
597 char* sdl_error;
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
598 SDL_Event event;
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
599
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
600 /* Do our drawing, too. */
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
601 glClearColor( 0.0, 0.0, 0.0, 1.0 );
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
602 glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
603
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
604 glBegin( GL_QUADS );
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
605
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
606 #ifdef SHADED_CUBE
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
607 glColor3fv(color[0]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
608 glVertex3fv(cube[0]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
609 glColor3fv(color[1]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
610 glVertex3fv(cube[1]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
611 glColor3fv(color[2]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
612 glVertex3fv(cube[2]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
613 glColor3fv(color[3]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
614 glVertex3fv(cube[3]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
615
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
616 glColor3fv(color[3]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
617 glVertex3fv(cube[3]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
618 glColor3fv(color[4]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
619 glVertex3fv(cube[4]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
620 glColor3fv(color[7]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
621 glVertex3fv(cube[7]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
622 glColor3fv(color[2]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
623 glVertex3fv(cube[2]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
624
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
625 glColor3fv(color[0]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
626 glVertex3fv(cube[0]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
627 glColor3fv(color[5]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
628 glVertex3fv(cube[5]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
629 glColor3fv(color[6]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
630 glVertex3fv(cube[6]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
631 glColor3fv(color[1]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
632 glVertex3fv(cube[1]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
633
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
634 glColor3fv(color[5]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
635 glVertex3fv(cube[5]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
636 glColor3fv(color[4]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
637 glVertex3fv(cube[4]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
638 glColor3fv(color[7]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
639 glVertex3fv(cube[7]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
640 glColor3fv(color[6]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
641 glVertex3fv(cube[6]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
642
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
643 glColor3fv(color[5]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
644 glVertex3fv(cube[5]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
645 glColor3fv(color[0]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
646 glVertex3fv(cube[0]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
647 glColor3fv(color[3]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
648 glVertex3fv(cube[3]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
649 glColor3fv(color[4]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
650 glVertex3fv(cube[4]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
651
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
652 glColor3fv(color[6]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
653 glVertex3fv(cube[6]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
654 glColor3fv(color[1]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
655 glVertex3fv(cube[1]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
656 glColor3fv(color[2]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
657 glVertex3fv(cube[2]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
658 glColor3fv(color[7]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
659 glVertex3fv(cube[7]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
660 #else // flat cube
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
661 glColor3f(1.0, 0.0, 0.0);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
662 glVertex3fv(cube[0]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
663 glVertex3fv(cube[1]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
664 glVertex3fv(cube[2]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
665 glVertex3fv(cube[3]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
666
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
667 glColor3f(0.0, 1.0, 0.0);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
668 glVertex3fv(cube[3]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
669 glVertex3fv(cube[4]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
670 glVertex3fv(cube[7]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
671 glVertex3fv(cube[2]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
672
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
673 glColor3f(0.0, 0.0, 1.0);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
674 glVertex3fv(cube[0]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
675 glVertex3fv(cube[5]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
676 glVertex3fv(cube[6]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
677 glVertex3fv(cube[1]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
678
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
679 glColor3f(0.0, 1.0, 1.0);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
680 glVertex3fv(cube[5]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
681 glVertex3fv(cube[4]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
682 glVertex3fv(cube[7]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
683 glVertex3fv(cube[6]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
684
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
685 glColor3f(1.0, 1.0, 0.0);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
686 glVertex3fv(cube[5]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
687 glVertex3fv(cube[0]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
688 glVertex3fv(cube[3]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
689 glVertex3fv(cube[4]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
690
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
691 glColor3f(1.0, 0.0, 1.0);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
692 glVertex3fv(cube[6]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
693 glVertex3fv(cube[1]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
694 glVertex3fv(cube[2]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
695 glVertex3fv(cube[7]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
696 #endif /* SHADED_CUBE */
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
697
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
698 glEnd( );
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
699
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
700 glMatrixMode(GL_MODELVIEW);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
701 glRotatef(5.0, 1.0, 1.0, 1.0);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
702
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
703 /* Draw 2D logo onto the 3D display */
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
704 if ( logo ) {
234
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
705 if ( USE_DEPRECATED_OPENGLBLIT ) {
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
706 DrawLogoBlit();
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
707 } else {
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
708 DrawLogoTexture();
1af4be6a73cd Modified the logo texture load to accept any width/height image
Sam Lantinga <slouken@libsdl.org>
parents: 233
diff changeset
709 }
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
710 }
933
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
711 if ( logocursor ) {
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
712 DrawLogoCursor();
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
713 }
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
714
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
715 SDL_GL_SwapBuffers( );
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
716
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
717 /* Check for error conditions. */
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
718 gl_error = glGetError( );
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
719
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
720 if( gl_error != GL_NO_ERROR ) {
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
721 fprintf( stderr, "testgl: OpenGL error: %d\n", gl_error );
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
722 }
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
723
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
724 sdl_error = SDL_GetError( );
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
725
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
726 if( sdl_error[0] != '\0' ) {
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
727 fprintf(stderr, "testgl: SDL error '%s'\n", sdl_error);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
728 SDL_ClearError();
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
729 }
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
730
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
731 /* Allow the user to see what's happening */
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
732 if ( slowly ) {
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
733 SDL_Delay( 20 );
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
734 }
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
735
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
736 /* Check if there's a pending event. */
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
737 while( SDL_PollEvent( &event ) ) {
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
738 done = HandleEvent(&event);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
739 }
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
740 ++frames;
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
741 }
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
742
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
743 /* Print out the frames per second */
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
744 this_time = SDL_GetTicks();
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
745 if ( this_time != start_time ) {
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
746 printf("%2.2f FPS\n",
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
747 ((float)frames/(this_time-start_time))*1000.0);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
748 }
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
749
492
c59692dcdce0 *** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents: 363
diff changeset
750 if ( global_image ) {
c59692dcdce0 *** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents: 363
diff changeset
751 SDL_FreeSurface(global_image);
c59692dcdce0 *** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents: 363
diff changeset
752 global_image = NULL;
c59692dcdce0 *** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents: 363
diff changeset
753 }
c59692dcdce0 *** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents: 363
diff changeset
754 if ( global_texture ) {
c59692dcdce0 *** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents: 363
diff changeset
755 glDeleteTextures( 1, &global_texture );
c59692dcdce0 *** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents: 363
diff changeset
756 global_texture = 0;
c59692dcdce0 *** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents: 363
diff changeset
757 }
933
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
758 if ( cursor_texture ) {
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
759 glDeleteTextures( 1, &cursor_texture );
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
760 cursor_texture = 0;
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
761 }
492
c59692dcdce0 *** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents: 363
diff changeset
762
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
763 /* Destroy our GL context, etc. */
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
764 SDL_Quit( );
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
765 return(0);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
766 }
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
767
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
768 int main(int argc, char *argv[])
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
769 {
933
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
770 int i, logo, logocursor;
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
771 int numtests;
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
772 int bpp = 0;
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
773 int slowly;
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
774 float gamma = 0.0;
492
c59692dcdce0 *** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents: 363
diff changeset
775 int noframe = 0;
655
9c42ee1b7d77 Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents: 492
diff changeset
776 int fsaa = 0;
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
777
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
778 logo = 0;
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
779 slowly = 0;
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
780 numtests = 1;
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
781 for ( i=1; argv[i]; ++i ) {
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
782 if ( strcmp(argv[i], "-twice") == 0 ) {
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
783 ++numtests;
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
784 }
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
785 if ( strcmp(argv[i], "-logo") == 0 ) {
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
786 logo = 1;
233
5b42a7f5fab3 SDL_OPENGLBLIT is deprecated, show the "right way" of doing things
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
787 USE_DEPRECATED_OPENGLBLIT = SDL_FALSE;
5b42a7f5fab3 SDL_OPENGLBLIT is deprecated, show the "right way" of doing things
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
788 }
5b42a7f5fab3 SDL_OPENGLBLIT is deprecated, show the "right way" of doing things
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
789 if ( strcmp(argv[i], "-logoblit") == 0 ) {
5b42a7f5fab3 SDL_OPENGLBLIT is deprecated, show the "right way" of doing things
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
790 logo = 1;
5b42a7f5fab3 SDL_OPENGLBLIT is deprecated, show the "right way" of doing things
Sam Lantinga <slouken@libsdl.org>
parents: 221
diff changeset
791 USE_DEPRECATED_OPENGLBLIT = SDL_TRUE;
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
792 }
933
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
793 if ( strcmp(argv[i], "-logocursor") == 0 ) {
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
794 logocursor = 1;
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
795 }
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
796 if ( strcmp(argv[i], "-slow") == 0 ) {
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
797 slowly = 1;
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
798 }
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
799 if ( strcmp(argv[i], "-bpp") == 0 ) {
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
800 bpp = atoi(argv[++i]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
801 }
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
802 if ( strcmp(argv[i], "-gamma") == 0 ) {
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
803 gamma = (float)atof(argv[++i]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
804 }
320
66f815c147ed Date: Thu, 28 Mar 2002 09:20:03 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 243
diff changeset
805 if ( strcmp(argv[i], "-noframe") == 0 ) {
66f815c147ed Date: Thu, 28 Mar 2002 09:20:03 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 243
diff changeset
806 noframe = 1;
66f815c147ed Date: Thu, 28 Mar 2002 09:20:03 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 243
diff changeset
807 }
655
9c42ee1b7d77 Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents: 492
diff changeset
808 if ( strcmp(argv[i], "-fsaa") == 0 ) {
9c42ee1b7d77 Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents: 492
diff changeset
809 ++fsaa;
9c42ee1b7d77 Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents: 492
diff changeset
810 }
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
811 if ( strncmp(argv[i], "-h", 2) == 0 ) {
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
812 printf(
933
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
813 "Usage: %s [-twice] [-logo] [-logocursor] [-slow] [-bpp n] [-gamma n] [-noframe] [-fsaa] [-fullscreen]\n",
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
814 argv[0]);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
815 exit(0);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
816 }
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
817 }
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
818 for ( i=0; i<numtests; ++i ) {
933
4272450dd8d0 Added an option to show the logo at the cursor position for debugging
Sam Lantinga <slouken@libsdl.org>
parents: 910
diff changeset
819 RunGLTest(argc, argv, logo, logocursor, slowly, bpp, gamma, noframe, fsaa);
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
820 }
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
821 return 0;
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
822 }
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
823
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
824 #else /* HAVE_OPENGL */
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
825
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
826 int main(int argc, char *argv[])
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
827 {
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
828 printf("No OpenGL support on this system\n");
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
829 return 1;
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
830 }
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
831
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
832 #endif /* HAVE_OPENGL */