1. 新建窗口
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1. 新建窗口相关的知识,希望对你有一定的参考价值。
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. 新建窗口的主要内容,如果未能解决你的问题,请参考以下文章