src/video/directfb/SDL_DirectFB_opengl.h
author Sam Lantinga
Mon, 16 Aug 2010 09:04:55 -0700
changeset 4636 b196d2758026
parent 3697 f7b03b6838cb
child 5199 164f20ba08eb
permissions -rw-r--r--
Couriersud to Sam

Hi Sam,

20100815_1.diff contains updates for the directfb driver:

- more documentation, mainly on software OpenGL in README.directfb
- Revised error handling leading to leaner code
- Improved/fixed OpenGL handling of multiple contexts.
- Made the built-in simple window manager handle OpenGL windows.
- Rewrote pixelformat mapping - this was quite ugly before.

Well, all software GL, but working :-)
     1 /*
     2     SDL - Simple DirectMedia Layer
     3     Copyright (C) 1997-2010 Sam Lantinga
     4 
     5     This library is free software; you can redistribute it and/or
     6     modify it under the terms of the GNU Lesser General Public
     7     License as published by the Free Software Foundation; either
     8     version 2.1 of the License, or (at your option) any later version.
     9 
    10     This library is distributed in the hope that it will be useful,
    11     but WITHOUT ANY WARRANTY; without even the implied warranty of
    12     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    13     Lesser General Public License for more details.
    14 
    15     You should have received a copy of the GNU Lesser General Public
    16     License along with this library; if not, write to the Free Software
    17     Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
    18 
    19     Sam Lantinga
    20     slouken@libsdl.org
    21 */
    22 #include "SDL_config.h"
    23 
    24 #ifndef _SDL_directfb_opengl_h
    25 #define _SDL_directfb_opengl_h
    26 
    27 #if SDL_DIRECTFB_OPENGL
    28 #include "SDL_opengl.h"
    29 
    30 typedef struct _DirectFB_GLContext DirectFB_GLContext;
    31 struct _DirectFB_GLContext
    32 {
    33     IDirectFBGL *context;
    34     DirectFB_GLContext *next;
    35     
    36     SDL_Window *sdl_window;
    37     int is_locked;
    38 };
    39 
    40 /* OpenGL functions */
    41 extern int DirectFB_GL_Initialize(_THIS);
    42 extern void DirectFB_GL_Shutdown(_THIS);
    43 
    44 extern int DirectFB_GL_LoadLibrary(_THIS, const char *path);
    45 extern void *DirectFB_GL_GetProcAddress(_THIS, const char *proc);
    46 extern SDL_GLContext DirectFB_GL_CreateContext(_THIS, SDL_Window * window);
    47 extern int DirectFB_GL_MakeCurrent(_THIS, SDL_Window * window,
    48                                    SDL_GLContext context);
    49 extern int DirectFB_GL_SetSwapInterval(_THIS, int interval);
    50 extern int DirectFB_GL_GetSwapInterval(_THIS);
    51 extern void DirectFB_GL_SwapWindow(_THIS, SDL_Window * window);
    52 extern void DirectFB_GL_DeleteContext(_THIS, SDL_GLContext context);
    53 
    54 extern void DirectFB_GL_FreeWindowContexts(_THIS, SDL_Window * window);
    55 extern void DirectFB_GL_ReAllocWindowContexts(_THIS, SDL_Window * window);
    56 extern void DirectFB_GL_DestroyWindowContexts(_THIS, SDL_Window * window);
    57 
    58 #endif /* SDL_DIRECTFB_OPENGL */
    59 
    60 #endif /* _SDL_directfb_opengl_h */
    61 
    62 /* vi: set ts=4 sw=4 expandtab: */