Opengl(二)——准备好窗口
来源:互联网 发布:阿里云香港服务器ss 编辑:程序博客网 时间:2024/06/08 10:13
正文
#define GLEW_STATIC //静态编译必须加#include <GL/glew.h>#include <glfw3.h>#include <iostream>using namespace std;void key_callback(GLFWwindow* window, int key, int scancode, int action, int mode){ if (key == GLFW_KEY_ESCAPE && action == GLFW_PRESS) glfwSetWindowShouldClose(window, GL_TRUE);} //按键回调函数int main(){ glfwInit(); glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); //确定opengl版本 glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3); glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); glfwWindowHint(GLFW_RESIZABLE, GL_FALSE); GLFWwindow* window = glfwCreateWindow(800, 600, "NB", nullptr, nullptr); //获取窗口指针 if (window == nullptr) { std::cout << "Failed to create GLFW window" << std::endl; glfwTerminate(); return -1; } glfwMakeContextCurrent(window); glewExperimental = GL_TRUE; GLenum err = glewInit(); if (GLEW_OK!=err) { cout << "Failed to initialize GLEW" << endl; } glViewport(0, 0, 800, 600); //设置视口大小 glfwSetKeyCallback(window, key_callback); //注册 while (!glfwWindowShouldClose(window)) //游戏主循环 { glfwPollEvents(); // 检查事件 glfwSwapBuffers(window); //切换缓冲帧 glClearColor(0.2f, 0.3f, 0.3f, 1); glClear(GL_COLOR_BUFFER_BIT); //清除 } glfwTerminate(); //释放资源 return 0;}
glfw是一个工具包,用来简化一些操作,在这里可以很轻松的创建一个窗口。
glew, 由于opengl具有扩展特性,所以不同的显卡驱动会在实现公共opengl规范的同时,加上自己的一些拓展功能,而glew的作用是在运行之后根据当前驱动环境获取所有函数指针,原因是由于驱动版本众多,大多函数在运行之前是未确定的,所以glew会把函数指针都收集起来以便使用,当然,这就需要glew的版本足够新,从而能够囊括所有函数。
1 1
- Opengl(二)——准备好窗口
- OpenGL 入门教程 - 准备好OpenGL(1)
- [Modern OpenGL系列(二)]创建OpenGL窗口
- Redis研究(二)—准备
- OpenGL学习(二):第一个GLFW窗口
- 基于Cocos2d-x学习OpenGL ES 2.0系列——OpenGL ES渲染之Shader准备(7)
- opengl笔记——OpenGL好资料备忘
- OpenGL入门6——GLUT窗口
- Mapr升级步骤(二)——准备升级
- Redis学习笔记(二)——Redis的准备
- 准备好发布你的作品了吗?(二十八)
- 准备好
- 准备好
- OpenGL教程(1):编程准备
- OpenGL ES 学习笔记(二)——什么是OpenGL ES
- OpenGL在MFC中的使用总结(二)——派生的OpenGL类
- 【OpenGL基础篇】——使用面向对象方法封装OpenGL函数(二)
- OpenGL深入探索——阴影贴图(二)
- this指针指向当前调用对象,只是用于类的非静态成员函数。静态函数和全局函数 无当前对象,无this指针。
- Android Studio 修改主题
- edu round 9 B-Alice, Bob, Two Teams
- IOS 高效利用Xcode
- java环境变量配置的那些事
- Opengl(二)——准备好窗口
- vim编辑状态下,delete键不能删除空白行
- Android开发之详解五大布局
- C语言回顾--循环
- ORACLE 12c 所有latch name
- 关于logcat在运行项目的时候没有打印出对应的文字的解决办法
- vmware 网络连接方式的说明
- LeetCode91——Decode Ways
- Java日志管理最佳实践