zoukankan      html  css  js  c++  java
  • SDL2中使用OpenGL绘图

    原文地址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
    ", 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
    ", 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
    ", 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 }
  • 相关阅读:
    Object C学习笔记2-NSLog 格式化输出数据
    NSPoint 位置
    NSNull空值
    工商银行卡 安全码是什么
    查看苹果开发者账号类型
    IOS中录音后再播放声音太小问题解决
    解决RegexKitLite导入报错问题
    iOS开发--OC常见报错
    UIImagePickerController
    UIPageViewController
  • 原文地址:https://www.cnblogs.com/CodeMIRACLE/p/5516448.html
Copyright © 2011-2022 走看看