SDL_GL_CreateContext
Use this function to create an OpenGL context for use with an OpenGL window, and make it current.
Contents
Syntax
SDL_GLContext SDL_GL_CreateContext(SDL_Window* window)
Function Parameters
window |
the window to associate with the context |
Return Value
Returns the OpenGL context associated with window.
Code Examples
#include <SDL2/SDL.h>
#include <SDL2/SDL_opengl.h>
int main(int argc, char* argv[]){
SDL_Init(SDL_INIT_VIDEO); // Init SDL2
// Create a window. Window mode MUST include SDL_WINDOW_OPENGL for use with OpenGL.
SDL_Window *window = SDL_CreateWindow(
"SDL2/OpenGL Demo", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 640, 480, SDL_WINDOW_OPENGL|SDL_WINDOW_RESIZABLE
);
// Create an OpenGL context associated with the window.
SDL_GLContext GLContext = SDL_GL_CreateContext(window);
// Now, regular OpenGL functions ...
glMatrixMode(GL_PROJECTION|GL_MODELVIEW);
glLoadIdentity();
glOrtho(-200,200,200,-200,0,1);
// ... can be used alongside SDL2.
SDL_Event e;
while(e.type!=SDL_QUIT){ // Enter main loop.
SDL_PollEvent(&e); // Check for events.
glClearColor(0,0,0,1); // Draw with OpenGL.
glClear(GL_COLOR_BUFFER_BIT);
glRotatef(1.0,0.0,0.0,1.0);
glBegin(GL_LINE_LOOP);
glColor3f(1.0,0.0,0.0); glVertex2f( 0,100);
glColor3f(0.0,1.0,0.0); glVertex2f( 100,-50);
glColor3f(1.0,0.0,1.0); glVertex2f(-100,-50);
glEnd();
// Swap the window/buffer to display the result.
SDL_GL_SwapWindow(window);
// Pause briefly before moving on to the next cycle.
SDL_Delay(10);
}
// Once finished with OpenGL functions, the SDL_GLContext can be deleted.
SDL_GL_DeleteContext(GLContext);
// Done! Close the window, clean-up and exit the program.
SDL_DestroyWindow(window);
SDL_Quit();
return 0;
}
Remarks
You can add useful comments here
