2 * $Source: /cvs/cvsroot/d2x/arch/ogl/sdlgl.c,v $
5 * $Date: 2001-11-04 09:02:18 $
7 * Graphics functions for SDL-GL.
9 * $Log: not supported by cvs2svn $
10 * Revision 1.2 2001/10/31 07:35:48 bradleyb
13 * Revision 1.1 2001/10/25 08:25:34 bradleyb
14 * Finished moving stuff to arch/blah. I know, it's ugly, but It'll be easier to sync with d1x.
16 * Revision 1.4 2001/10/09 08:17:07 bradleyb
17 * changed window caption to include version info
19 * Revision 1.3 2001/10/09 02:58:20 bradleyb
20 * Added window caption, hide mouse cursor
22 * Revision 1.2 2001/01/29 13:47:52 bradleyb
23 * Fixed build, some minor cleanups.
38 static int curx=-1,cury=-1,curfull=0;
40 void ogl_do_fullscreen_internal(void){
41 ogl_init_window(curx,cury);
44 void ogl_swap_buffers_internal(void){
48 int ogl_init_window(int x, int y){
50 if (x==curx && y==cury && curfull==ogl_fullscreen)
52 if (ogl_fullscreen || curfull)
53 ogl_smash_texture_list_internal();//if we are or were fullscreen, changing vid mode will invalidate current textures
55 SDL_WM_SetCaption(DESCENT_VERSION, "Descent II");
56 if (!SDL_SetVideoMode(x,y, 16, SDL_OPENGL | (ogl_fullscreen?SDL_FULLSCREEN:0))) {
57 Error("Could not set %dx%dx16 opengl video mode\n",x,y);
61 curx=x;cury=y;curfull=ogl_fullscreen;
67 void ogl_destroy_window(void){
69 ogl_smash_texture_list_internal();
72 //well..SDL doesn't really let you kill the window.. so we just need to wait for sdl_quit
79 if ((t=FindArg("-gl_red")))
80 SDL_GL_SetAttribute( SDL_GL_RED_SIZE, atoi(Args[t+1]) );
81 if ((t=FindArg("-gl_green")))
82 SDL_GL_SetAttribute( SDL_GL_GREEN_SIZE, atoi(Args[t+1]) );
83 if ((t=FindArg("-gl_blue")))
84 SDL_GL_SetAttribute( SDL_GL_BLUE_SIZE, atoi(Args[t+1]) );
85 if ((t=FindArg("-gl_alpha")))
86 SDL_GL_SetAttribute( SDL_GL_ALPHA_SIZE, atoi(Args[t+1]) );
87 if ((t=FindArg("-gl_buffer")))
88 SDL_GL_SetAttribute( SDL_GL_BUFFER_SIZE, atoi(Args[t+1]) );
89 // SDL_GL_SetAttribute( SDL_GL_RED_SIZE, 5 );
90 // SDL_GL_SetAttribute( SDL_GL_GREEN_SIZE, 5 );
91 // SDL_GL_SetAttribute( SDL_GL_BLUE_SIZE, 5 );
92 // SDL_GL_SetAttribute( SDL_GL_ALPHA_SIZE, 8 );
95 SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE,0);
96 SDL_GL_SetAttribute(SDL_GL_STENCIL_SIZE,0);
97 SDL_GL_SetAttribute(SDL_GL_ACCUM_RED_SIZE,0);
98 SDL_GL_SetAttribute(SDL_GL_ACCUM_GREEN_SIZE,0);
99 SDL_GL_SetAttribute(SDL_GL_ACCUM_BLUE_SIZE,0);
100 SDL_GL_SetAttribute(SDL_GL_ACCUM_ALPHA_SIZE,0);
101 SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER,1);
105 void ogl_close(void){
106 #if 1 // shouldn't really be necessary...
109 ogl_do_fullscreen_internal();
112 ogl_destroy_window();