OpenGL学习笔记:GLAD和第一个窗口
环境
系统:Windows10 64位 家庭中文版
IDE:Visual Studio 2017 专业版
参考教程:https://learnopengl-cn.github.io/01 Getting started/03 Hello Window/
步骤
1.获取GLAD:
a.打开GLAD提供的在线服务;
b.将Language设置为C/C++、将Specification设置为OpenGL、API中的gl选项选择Version 3.3(或以上)、Profile设置为Core,并且选中Generate a loader,暂时忽略其他内容,如下图所示,最后点击GENERATE按钮来生成库文件;
c.在跳转后的网页中选择glad.zip下载下来,如下图所示:
d.把下载下来的glad.zip文件解压,就可以得到我们需要的include\glad\glad.h、include\KHR\khrplatform.h和src\glad.c这3个文件。
2.新建Visual Studio项目,把步骤1得到的3个文件都添加到项目中,同时在项目中添加一个main.cpp文件,然后把以下代码复制到main.cpp文件中:
#include <glad\glad.h> //这个必须放在GLFW之前
#include <GLFW\glfw3.h>#include <iostream> //这个是为了使用打印语句//函数声明
void framebuffer_size_callback(GLFWwindow* window, int width, int height); //窗口大小设置回调函数
void processInput(GLFWwindow* window); //输入处理函数//常量定义
const unsigned int SCR_WIDTH = 800;
const unsigned int SCR_HEIGHT = 600;//主函数
int main()
{glfwInit(); //glfw 初始化//设置OpenGL版本等信息glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);//创建GLFW窗口GLFWwindow* window = glfwCreateWindow(SCR_WIDTH, SCR_HEIGHT, "LearnOpenGL", NULL, NULL);if (window == NULL){std::cout << "Failed to create GLFW window" << std::endl;glfwTerminate();return -1;}//设置当前上下文glfwMakeContextCurrent(window);glfwSetFramebufferSizeCallback(window, framebuffer_size_callback);//把OpenGL的函数指针导入给GLADif (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress)){std::cout << "Failed to initialize GLAD" << std::endl;return -1;}//循环渲染while (!glfwWindowShouldClose(window)){processInput(window);//交换缓存glfwSwapBuffers(window);//事件处理glfwPollEvents();}//停止glfwTerminate();return 0;
}//窗口大小设置回调函数
void framebuffer_size_callback(GLFWwindow* window, int width, int height)
{glViewport(0, 0, width, height);
}//输入处理函数
void processInput(GLFWwindow* window)
{if (glfwGetKey(window, GLFW_KEY_ESCAPE) == GLFW_PRESS){glfwSetWindowShouldClose(window, true);}
}
3.编译运行代码,可以得到1个窗口,如下图:
OpenGL学习笔记:GLAD和第一个窗口相关推荐
- 现代OpenGL学习笔记二:第一个三角形
本笔记主要是跟学LearnOpenGL的内容,并将其中一些不懂的地方通过查阅资料进行整理补充,推荐参考原文: 整个教程:https://learnopengl-cn.github.io/ 本笔记参考教 ...
- OpenGL 学习笔记 II:初始化 API,第一个黑窗,游戏循环和帧率,OpenGL 默认垂直同步,glfw 帧率
前情提要: 上一篇: OpenGL 学习笔记 I:OpenGL glew glad glfw glut 的关系,OpenGL 状态机,现代操作系统的窗口管理器,OpenGL 窗口和上下文 OpenGL ...
- OpenGL学习笔记(八):进一步理解VAO、VBO和SHADER,并使用VAO、VBO和SHADER绘制一个三角形
原博主博客地址:http://blog.csdn.net/qq21497936 本文章博客地址:http://blog.csdn.net/qq21497936/article/details/7888 ...
- 【OpenGL学习笔记⑧】——键盘控制正方体+光源【冯氏光照模型 光照原理 环境光照+漫反射光照+镜面光照】
✅ 重点参考了 LearnOpenGL CN 的内容,但大部分知识内容,小编已作改写,以方便读者理解. 文章目录 零. 成果预览图 一. 光照原理与投光物的配置 1.1 光照原理 1.2 投光物 二. ...
- 【OpenGL学习笔记】地月系
OpenGL学习笔记2-地月系 文章目录 OpenGL学习笔记2-地月系 前言 运行结果 纹理图片 一.TexturePool 1.**TexturePool.h** 2.**TexturePool. ...
- 【OpenGL学习笔记⑥】——3D变换【旋转的正方体 实现地月系统 旋转+平移+缩放】
✈️ 文章目录 零. 成果预览图 一.3D立方体的顶点数组 二.纹理旋转 三.纹理缩放 四.画n个3D图形 五.轨道的数学公式 六.深度缓冲(Z 缓冲) 七.完整代码 八.参考附录: 神器的正方体 ☁ ...
- OpenGL学习笔记:矩阵变换
文章目录 缩放 glm矩阵表示 glm缩放矩阵实现 位移 齐次坐标 glm位移矩阵实现 旋转 沿x轴旋转 沿y轴旋转 沿z轴旋转 沿任意轴旋转 glm旋转矩阵实现 矩阵的组合 glm矩阵组合使用 接上 ...
- OpenGL学习笔记(一):环境搭建、三维空间坐标系理解以及OpenGL的基本使用
原博主博客地址:http://blog.csdn.net/qq21497936 本文章博客地址:http://blog.csdn.net/qq21497936/article/details/7866 ...
- OpenGL学习笔记(十三):将纹理贴图应用到四边形上,对VAO/VBO/EBO/纹理/着色器的使用方式进行总结
原博主博客地址:http://blog.csdn.net/qq21497936 本文章博客地址:http://blog.csdn.net/qq21497936/article/details/7919 ...
- Django:学习笔记(2)——创建第一个应用
Django:学习笔记(2)--创建第一个应用 创建应用 在 Django 中,每一个应用都是一个 Python 包,并且遵循着相同的约定.Django 自带一个工具,可以帮你生成应用的基础目录结构, ...
最新文章
- 1004 Counting Leaves (30分) (vector实现)
- oracle600错误,oracle在导入数据时报600错误的解决方法
- while循环打印*菱形
- DNN SEO专题 (收集)
- 利用Python爬虫采集mac电脑皮肤
- PetShop4.0的安装、设置、调试与体验(草稿)
- python 全栈开发,Day81(博客系统个人主页,文章详情页)
- tp3.2 执行原生sql
- 抓虫记之八:每天崩溃的服务器
- 伪C++开发小游戏---连连看
- 技术美术知识学习4200:SSAO算法
- 小米禁止android系统联网,解决MIUI下新安装应用无法联网的问题
- 案例实战|泰坦尼克号船员获救预测(数据预处理部分)
- 拼多多电商外部工具(浏览器插件)
- python多线程中join()的理解
- 提取Windows主题中的图片
- CAD保存时,提示 警告 多重从属对象 XXX
- C++实战案例之通讯录管理系统
- iPhone 将被迫换成 USB-C 接口?苹果,你可怎么办啊......
- 《机器学习实战》决策树的应用