• Sam Lantinga's avatar
    Date: Sun, 22 Mar 2009 12:52:29 +0000 · ba096ad0
    Sam Lantinga authored
    From: Luke Benstead
    Subject: OpenGL 3.0 Context Creation
    
    I've attached a patch which implements OpenGL 3.x context creation on
    the latest SVN. I've added two options to SDL_GL_SetAttribute, these
    are SDL_GL_CONTEXT_MAJOR_VERSION and SDL_GL_CONTEXT_MINOR_VERSION.
    These default to 2 and 1 respectively. If the major version is less
    than 3 then the current context creation method is used, otherwise the
    appropriate new context creation function is called (depending on the
    platform).
    
    Sample code:
    
        if (SDL_Init(SDL_INIT_VIDEO) != 0) {
            printf("Unable to initialize SDL: %s\n", SDL_GetError());
            return 1;
        }
    
        SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3); //Without these 2 lines, SDL will create a GL 2.x context
        SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 0);
        SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
    
        SDL_Surface* screen = SDL_SetVideoMode( 640, 480, 16, SDL_OPENGL | SDL_FULLSCREEN );
    
    
    I've implemented context creation on both Win32 and X and run basic
    tests on both. This patch doesn't provide access to all the options
    allowed by the new context creation (e.g. shared contexts, forward
    compatible contexts) but they can be added pretty easily.
    
    --HG--
    extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%403567
    ba096ad0
SDL_win32opengl.c 17.7 KB