Mercurial > sdl-ios-xcode
diff src/video/cybergfx/SDL_cgxgl.c @ 1662:782fd950bd46 SDL-1.3
Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
WARNING: None of the video drivers have been updated for the new API yet! The API is still under design and very fluid.
The code is now run through a consistent indent format:
indent -i4 -nut -nsc -br -ce
The headers are being converted to automatically generate doxygen documentation.
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Sun, 28 May 2006 13:04:16 +0000 |
parents | d910939febfa |
children | 4da1ee79c9af |
line wrap: on
line diff
--- a/src/video/cybergfx/SDL_cgxgl.c Sun May 21 17:27:13 2006 +0000 +++ b/src/video/cybergfx/SDL_cgxgl.c Sun May 28 13:04:16 2006 +0000 @@ -27,186 +27,201 @@ #include "SDL_cgxvideo.h" #if SDL_VIDEO_OPENGL -AmigaMesaContext glcont=NULL; +AmigaMesaContext glcont = NULL; #endif /* Init OpenGL */ -int CGX_GL_Init(_THIS) +int +CGX_GL_Init (_THIS) { #if SDL_VIDEO_OPENGL - int i = 0; - struct TagItem attributes [ 14 ]; /* 14 should be more than enough :) */ - struct Window *win = (struct Window *)SDL_Window; + int i = 0; + struct TagItem attributes[14]; /* 14 should be more than enough :) */ + struct Window *win = (struct Window *) SDL_Window; - // default config. Always used... - attributes[i].ti_Tag = AMA_Window; attributes[i++].ti_Data = (unsigned long)win; - attributes[i].ti_Tag = AMA_Left; attributes[i++].ti_Data = 0; - attributes[i].ti_Tag = AMA_Bottom; attributes[i++].ti_Data = 0; - attributes[i].ti_Tag = AMA_Width; attributes[i++].ti_Data = win->Width-win->BorderLeft-win->BorderRight; - attributes[i].ti_Tag = AMA_Height; attributes[i++].ti_Data = win->Height-win->BorderBottom-win->BorderTop; - attributes[i].ti_Tag = AMA_DirectRender; attributes[i++].ti_Data = GL_TRUE; + // default config. Always used... + attributes[i].ti_Tag = AMA_Window; + attributes[i++].ti_Data = (unsigned long) win; + attributes[i].ti_Tag = AMA_Left; + attributes[i++].ti_Data = 0; + attributes[i].ti_Tag = AMA_Bottom; + attributes[i++].ti_Data = 0; + attributes[i].ti_Tag = AMA_Width; + attributes[i++].ti_Data = win->Width - win->BorderLeft - win->BorderRight; + attributes[i].ti_Tag = AMA_Height; + attributes[i++].ti_Data = + win->Height - win->BorderBottom - win->BorderTop; + attributes[i].ti_Tag = AMA_DirectRender; + attributes[i++].ti_Data = GL_TRUE; - // double buffer ? - attributes[i].ti_Tag = AMA_DoubleBuf; - if ( this->gl_config.double_buffer ) { - attributes[i++].ti_Data = GL_TRUE; - } - else { - attributes[i++].ti_Data = GL_FALSE; - } - // RGB(A) Mode ? - attributes[i].ti_Tag = AMA_RGBMode; - if ( this->gl_config.red_size != 0 && - this->gl_config.blue_size != 0 && - this->gl_config.green_size != 0 ) { - attributes[i++].ti_Data = GL_TRUE; - } - else { - attributes[i++].ti_Data = GL_FALSE; - } - // no depth buffer ? - if ( this->gl_config.depth_size == 0 ) { - attributes[i].ti_Tag = AMA_NoDepth; - attributes[i++].ti_Data = GL_TRUE; - } - // no stencil buffer ? - if ( this->gl_config.stencil_size == 0 ) { - attributes[i].ti_Tag = AMA_NoStencil; - attributes[i++].ti_Data = GL_TRUE; - } - // no accum buffer ? - if ( this->gl_config.accum_red_size != 0 && - this->gl_config.accum_blue_size != 0 && - this->gl_config.accum_green_size != 0 ) { - attributes[i].ti_Tag = AMA_NoAccum; - attributes[i++].ti_Data = GL_TRUE; - } - // done... - attributes[i].ti_Tag = TAG_DONE; + // double buffer ? + attributes[i].ti_Tag = AMA_DoubleBuf; + if (this->gl_config.double_buffer) { + attributes[i++].ti_Data = GL_TRUE; + } else { + attributes[i++].ti_Data = GL_FALSE; + } + // RGB(A) Mode ? + attributes[i].ti_Tag = AMA_RGBMode; + if (this->gl_config.red_size != 0 && + this->gl_config.blue_size != 0 && this->gl_config.green_size != 0) { + attributes[i++].ti_Data = GL_TRUE; + } else { + attributes[i++].ti_Data = GL_FALSE; + } + // no depth buffer ? + if (this->gl_config.depth_size == 0) { + attributes[i].ti_Tag = AMA_NoDepth; + attributes[i++].ti_Data = GL_TRUE; + } + // no stencil buffer ? + if (this->gl_config.stencil_size == 0) { + attributes[i].ti_Tag = AMA_NoStencil; + attributes[i++].ti_Data = GL_TRUE; + } + // no accum buffer ? + if (this->gl_config.accum_red_size != 0 && + this->gl_config.accum_blue_size != 0 && + this->gl_config.accum_green_size != 0) { + attributes[i].ti_Tag = AMA_NoAccum; + attributes[i++].ti_Data = GL_TRUE; + } + // done... + attributes[i].ti_Tag = TAG_DONE; - glcont = AmigaMesaCreateContext(attributes); - if ( glcont == NULL ) { - SDL_SetError("Couldn't create OpenGL context"); - return(-1); - } - this->gl_data->gl_active = 1; - this->gl_config.driver_loaded = 1; + glcont = AmigaMesaCreateContext (attributes); + if (glcont == NULL) { + SDL_SetError ("Couldn't create OpenGL context"); + return (-1); + } + this->gl_data->gl_active = 1; + this->gl_config.driver_loaded = 1; - return(0); + return (0); #else - SDL_SetError("OpenGL support not configured"); - return(-1); + SDL_SetError ("OpenGL support not configured"); + return (-1); #endif } /* Quit OpenGL */ -void CGX_GL_Quit(_THIS) +void +CGX_GL_Quit (_THIS) { #if SDL_VIDEO_OPENGL - if ( glcont != NULL ) { - AmigaMesaDestroyContext(glcont); - glcont = NULL; - this->gl_data->gl_active = 0; - this->gl_config.driver_loaded = 0; - } + if (glcont != NULL) { + AmigaMesaDestroyContext (glcont); + glcont = NULL; + this->gl_data->gl_active = 0; + this->gl_config.driver_loaded = 0; + } #endif } /* Attach context to another window */ -int CGX_GL_Update(_THIS) +int +CGX_GL_Update (_THIS) { #if SDL_VIDEO_OPENGL - struct TagItem tags[2]; - struct Window *win = (struct Window*)SDL_Window; - if(glcont == NULL) { - return -1; //should never happen - } - tags[0].ti_Tag = AMA_Window; - tags[0].ti_Data = (unsigned long)win; - tags[1].ti_Tag = TAG_DONE; - AmigaMesaSetRast(glcont, tags); + struct TagItem tags[2]; + struct Window *win = (struct Window *) SDL_Window; + if (glcont == NULL) { + return -1; //should never happen + } + tags[0].ti_Tag = AMA_Window; + tags[0].ti_Data = (unsigned long) win; + tags[1].ti_Tag = TAG_DONE; + AmigaMesaSetRast (glcont, tags); - return 0; + return 0; #else - SDL_SetError("OpenGL support not configured"); - return -1; + SDL_SetError ("OpenGL support not configured"); + return -1; #endif } #if SDL_VIDEO_OPENGL /* Make the current context active */ -int CGX_GL_MakeCurrent(_THIS) +int +CGX_GL_MakeCurrent (_THIS) { - if(glcont == NULL) - return -1; + if (glcont == NULL) + return -1; - AmigaMesaMakeCurrent(glcont, glcont->buffer); - return 0; + AmigaMesaMakeCurrent (glcont, glcont->buffer); + return 0; } -void CGX_GL_SwapBuffers(_THIS) +void +CGX_GL_SwapBuffers (_THIS) { - AmigaMesaSwapBuffers(glcont); + AmigaMesaSwapBuffers (glcont); } -int CGX_GL_GetAttribute(_THIS, SDL_GLattr attrib, int* value) { - GLenum mesa_attrib; +int +CGX_GL_GetAttribute (_THIS, SDL_GLattr attrib, int *value) +{ + GLenum mesa_attrib; - switch(attrib) { - case SDL_GL_RED_SIZE: - mesa_attrib = GL_RED_BITS; - break; - case SDL_GL_GREEN_SIZE: - mesa_attrib = GL_GREEN_BITS; - break; - case SDL_GL_BLUE_SIZE: - mesa_attrib = GL_BLUE_BITS; - break; - case SDL_GL_ALPHA_SIZE: - mesa_attrib = GL_ALPHA_BITS; - break; - case SDL_GL_DOUBLEBUFFER: - mesa_attrib = GL_DOUBLEBUFFER; - break; - case SDL_GL_DEPTH_SIZE: - mesa_attrib = GL_DEPTH_BITS; - break; - case SDL_GL_STENCIL_SIZE: - mesa_attrib = GL_STENCIL_BITS; - break; - case SDL_GL_ACCUM_RED_SIZE: - mesa_attrib = GL_ACCUM_RED_BITS; - break; - case SDL_GL_ACCUM_GREEN_SIZE: - mesa_attrib = GL_ACCUM_GREEN_BITS; - break; - case SDL_GL_ACCUM_BLUE_SIZE: - mesa_attrib = GL_ACCUM_BLUE_BITS; - break; - case SDL_GL_ACCUM_ALPHA_SIZE: - mesa_attrib = GL_ACCUM_ALPHA_BITS; - break; - default : - return -1; - } + switch (attrib) { + case SDL_GL_RED_SIZE: + mesa_attrib = GL_RED_BITS; + break; + case SDL_GL_GREEN_SIZE: + mesa_attrib = GL_GREEN_BITS; + break; + case SDL_GL_BLUE_SIZE: + mesa_attrib = GL_BLUE_BITS; + break; + case SDL_GL_ALPHA_SIZE: + mesa_attrib = GL_ALPHA_BITS; + break; + case SDL_GL_DOUBLEBUFFER: + mesa_attrib = GL_DOUBLEBUFFER; + break; + case SDL_GL_DEPTH_SIZE: + mesa_attrib = GL_DEPTH_BITS; + break; + case SDL_GL_STENCIL_SIZE: + mesa_attrib = GL_STENCIL_BITS; + break; + case SDL_GL_ACCUM_RED_SIZE: + mesa_attrib = GL_ACCUM_RED_BITS; + break; + case SDL_GL_ACCUM_GREEN_SIZE: + mesa_attrib = GL_ACCUM_GREEN_BITS; + break; + case SDL_GL_ACCUM_BLUE_SIZE: + mesa_attrib = GL_ACCUM_BLUE_BITS; + break; + case SDL_GL_ACCUM_ALPHA_SIZE: + mesa_attrib = GL_ACCUM_ALPHA_BITS; + break; + default: + return -1; + } - AmigaMesaGetConfig(glcont->visual, mesa_attrib, value); - return 0; + AmigaMesaGetConfig (glcont->visual, mesa_attrib, value); + return 0; } -void *CGX_GL_GetProcAddress(_THIS, const char *proc) { - void *func = NULL; - func = AmiGetGLProc(proc); - return func; +void * +CGX_GL_GetProcAddress (_THIS, const char *proc) +{ + void *func = NULL; + func = AmiGetGLProc (proc); + return func; } -int CGX_GL_LoadLibrary(_THIS, const char *path) { - /* Library is always open */ - this->gl_config.driver_loaded = 1; +int +CGX_GL_LoadLibrary (_THIS, const char *path) +{ + /* Library is always open */ + this->gl_config.driver_loaded = 1; - return 0; + return 0; } #endif /* SDL_VIDEO_OPENGL */ - +/* vi: set ts=4 sw=4 expandtab: */