码迷,mamicode.com
首页 > 其他好文 > 详细

SDL2中使用OpenGL绘图

时间:2016-05-22 12:07:48      阅读:844      评论:0      收藏:0      [点我收藏+]

标签:

原文地址http://www.zhieng.com/sdl2-with-opengl/

 1 // OpenGL headers
 2 #define GLEW_STATIC
 3 #include <GL/glew.h>
 4 #include <GL/glu.h>
 5 #include <GL/gl.h>
 6 
 7 // SDL headers
 8 #include <SDL_main.h>
 9 #include <SDL.h>
10 #include <SDL_opengl.h>
11 
12 bool quit;
13 
14 SDL_Window* window;
15 SDL_GLContext glContext;
16 SDL_Event sdlEvent;
17 
18 int main(int argc, char *argv[])
19 {
20     quit = false;
21 
22     //Use OpenGL 3.1 core
23     SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3);
24     SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 1);
25     SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE);
26 
27     // Initialize video subsystem
28     if(SDL_Init(SDL_INIT_VIDEO) < 0)
29     {
30         // Display error message
31         printf("SDL could not initialize! SDL_Error: %s\n", SDL_GetError());
32         return false;
33     }
34     else
35     {
36         // Create window
37         window = SDL_CreateWindow("Hello World!", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 800, 600, SDL_WINDOW_OPENGL | SDL_WINDOW_SHOWN );
38         if( window == NULL )
39         {
40             // Display error message
41             printf( "Window could not be created! SDL_Error: %s\n", SDL_GetError() );
42             return false;
43         }
44         else
45         {
46             // Create OpenGL context
47             glContext = SDL_GL_CreateContext(window);
48 
49             if( glContext == NULL )
50             {
51                 // Display error message
52                 printf( "OpenGL context could not be created! SDL Error: %s\n", SDL_GetError() );
53                 return false;
54             }
55             else
56             {
57                 // Initialize glew
58                 glewInit();
59             }
60         }
61     }
62 
63     // Game loop
64     while (!quit)
65     {
66         while(SDL_PollEvent(&sdlEvent) != 0)
67         {
68             // Esc button is pressed
69             if(sdlEvent.type == SDL_QUIT)
70             {
71                 quit = true;
72             }
73         }
74 
75         // Set background color as cornflower blue
76         glClearColor(0.39f, 0.58f, 0.93f, 1.f);
77         // Clear color buffer
78         glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
79         // Update window with OpenGL rendering
80         SDL_GL_SwapWindow(window);
81     }
82 
83     //Destroy window
84     SDL_DestroyWindow(window);
85     window = NULL;
86 
87     //Quit SDL subsystems
88     SDL_Quit();
89 
90     return 0;
91 }

 

SDL2中使用OpenGL绘图

标签:

原文地址:http://www.cnblogs.com/CodeMIRACLE/p/5516448.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!