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

1. 新建窗口

时间:2016-09-01 15:52:34      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:

 1 // GLEW
 2 #define GLEW_STATIC
 3 #include <GL/glew.h>
 4 // GLFW
 5 #include <GLFW/glfw3.h>
 6 
 7 #include <iostream>
 8 
 9 // 按键回调
10 void key_callback(GLFWwindow* window, int key, int scancode, int action, int mode)
11 {
12     if (key == GLFW_KEY_ESCAPE && action == GLFW_PRESS) {
13         glfwSetWindowShouldClose(window, GL_TRUE);
14     }
15 }
16 
17 int main()
18 {
19     // 初始化GLFW
20     glfwInit();
21 
22     // 配置GLFW
23     glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);  // 主版本号
24     glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);  // 次版本号
25     glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);  // 核心模式
26     glfwWindowHint(GLFW_RESIZABLE, GL_FALSE);  // 固定大小
27 
28     // 创建一个窗口对象
29     GLFWwindow* window = glfwCreateWindow(800, 600, "LearnOpenGL", nullptr, nullptr);
30     if (window == nullptr)
31     {
32         std::cout << "Failed to create GLFW window" << std::endl;
33         glfwTerminate();
34         return -1;
35     }
36     glfwMakeContextCurrent(window);
37 
38     glfwSetKeyCallback(window, key_callback);
39 
40     // 初始化GLEW
41     glewExperimental = GL_TRUE;
42     if (glewInit() != GLEW_OK)
43     {
44         std::cout << "Failed to initialize GLEW" << std::endl;
45         return -1;
46     }
47 
48     // 
49     int width, height;
50     glfwGetFramebufferSize(window, &width, &height);
51 
52     glViewport(0, 0, width, height);
53 
54     while (!glfwWindowShouldClose(window))
55     {
56         glfwPollEvents();
57 
58         glClearColor(0.2f, 0.3f, 0.3f, 1.0f);
59         glClear(GL_COLOR_BUFFER_BIT);
60 
61         glfwSwapBuffers(window);
62     }
63 
64     // 释放资源
65     glfwTerminate();
66 
67     return 0;
68 }

 

1. 新建窗口

标签:

原文地址:http://www.cnblogs.com/ykzou/p/5829895.html

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