Opengl+VS2019安装+(简单例子)+Opengl教程
安装链接(以下安装链接可以正常部署)
链接:https://blog.51cto.com/u_15102970/2638667
以下代码例子可以正常使用opengl绘制空白窗口。
#include <glad/glad.h>
#include <GLFW/glfw3.h>
#include <iostream>// settings
const unsigned int SCR_WIDTH = 800;
const unsigned int SCR_HEIGHT = 600;void framebuffer_size_callback(GLFWwindow* window, int width, int height);
void processInput(GLFWwindow* window);void processInput(GLFWwindow* window)
{if (glfwGetKey(window, GLFW_KEY_ESCAPE) == GLFW_PRESS)glfwSetWindowShouldClose(window, true);
}void framebuffer_size_callback(GLFWwindow* window, int width, int height)
{glViewport(0, 0, width, height);
}
int main()
{glfwInit();glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);#ifdef __APPLE__glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);
#endifGLFWwindow* 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);if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress)){std::cout << "Failed to initialize GLAD" << std::endl;return -1;}while (!glfwWindowShouldClose(window)){processInput(window);glClearColor(0.2f, 0.3f, 0.3f, 1.0f);glClear(GL_COLOR_BUFFER_BIT);glfwSwapBuffers(window);glfwPollEvents();}glfwTerminate();return 0;}
界面效果:
由于opengl的书籍很多,最出名的就是opengl编程指南(红宝石)和opengl(超级宝典)
但是这两本书的配置环境和我们现在这个版本的配置环境不同。所以这两本书可以以后看看。这边推荐的是使用和当前配置环境相同的教程。
至于为什么学习这个版本。这就是比如学习C++,现在新特性出到C++20了,你跟我说要学习C99的东西。要学习就学习最新、当前最流行的知识。
链接:OpenGL为什么配置GLAD及GLFW_jenny_paofu的博客-CSDN博客_glad glfw
教程链接网址:learnOpengl
简介 - LearnOpenGL CN
Opengl+VS2019安装+(简单例子)+Opengl教程相关推荐
- OpenGL ES 2.0 for Android教程(八):构建简单物体
OpenGL ES 2 第八章:构建简单物体 文章传送门 OpenGL ES 2.0 for Android教程(一) OpenGL ES 2.0 for Android教程(二) OpenGL ES ...
- OpenGL ES 2.0 for Android教程(六):进入第三维
OpenGL ES 2 第六章:进入第三维 文章传送门 OpenGL ES 2.0 for Android教程(一) OpenGL ES 2.0 for Android教程(二) OpenGL ES ...
- OpenGL ES 2.0 for Android教程(二):定义顶点和着色器
OpenGL ES 2 第二章:定义顶点和着色器 文章传送门 OpenGL ES 2.0 for Android教程(一) OpenGL ES 2.0 for Android教程(三) OpenGL ...
- OpenGL ES 2.0 for Android教程(五):调整屏幕的宽高比
OpenGL ES 2 第五章:调整屏幕的宽高比 文章传送门 OpenGL ES 2.0 for Android教程(一) OpenGL ES 2.0 for Android教程(二) OpenGL ...
- OpenGL vscode 安装与配置
OpenGL vscode 安装与配置 一.在vscode中配置好C++的环境 这个看下网上的教程 二.下载cmake CMake 下载好后点击安装,安装过程中选择add path to all us ...
- OpenGL ES 2.0 for Android教程(九):添加触摸反馈
OpenGL ES 2 第九章:添加触摸反馈 文章传送门 OpenGL ES 2.0 for Android教程(一) OpenGL ES 2.0 for Android教程(二) OpenGL ES ...
- linux opengl配置编译,Linux下OpenGL的安装与cmake编译OpenGL程序
Linux下OpenGL的安装与cmake编译OpenGL程序 OpenGL安装 安装命令如下: $ sudo apt install build-essential $ sudo apt insta ...
- JAVA的OPENGL,JOGL入门例子(四)----富视觉的螺旋体
由于长度不够,这次只打GLEventListener 的代码,整套代码我已经上传了,名为 富视觉的螺旋体.rar,大家可以下载测试一下,这来一个不错的动画,和前面的标准教程不同,这个例子富有视觉和动态 ...
- OpenGL ES 2.0 for Android教程(一)
OpenGL ES 2 前言&第一章 文章传送门 OpenGL ES 2.0 for Android教程(二) OpenGL ES 2.0 for Android教程(三) OpenGL ES ...
最新文章
- @RequestParam @RequestBody @PathVariable 等参数绑定注解详解
- 汇编 - ORG指令详解
- Entity Framework 6 Recipes 2nd Edition(10-3)译 - 返回结果是一个标量值
- maya崩溃自动保存路径_xgen 分享在maya里制作头发失败经验
- 详解javascript的bind方法
- JavaScript 模拟重载
- 【每日算法Day 104】偷电瓶的周某今天放出来了,还不赶紧做这道题防范一下!...
- 系统找不到指定的文件。 : No installed service named Apache
- HDU2177——取(2堆)石子游戏(威佐夫博弈)
- 永磁同步电机SVPWM过调制电压重构MTPA弱磁矢量控制仿真 模型
- javascript 实现自动定时刷新网页脚本
- apollo简易高精度地图制作
- 开课吧mysql课件百度云_开课吧第四期Web全栈课程分享
- AI云时代大幕开启,华为全栈AI产品线将迎春天
- Tim/QQ文件夹被占用60010
- RBF论ADSE(千万别学英语)之合理性
- 什么才算好的监控系统?
- Ceph 在Linux上的使用
- OpenSSL心脏出血漏洞
- 计算机桌面上的软件是内存上吗,电脑软件运行提示内存不足,占内存小的游戏-...
热门文章
- 家用监控系统需要服务器吗,家庭监控系统实现(一)
- 元宇宙iwemeta:元宇宙数字人实践落地应用场景
- Translation[VERTEBRA-FOCUSED LANDMARK DETECTION FOR SCOLIOSIS ASSESSMENT]——2021.6.18
- 动什么别动感情 第66节:你不是一个虚荣的女性
- ts 在vue中的使用总结
- logistic回归分析优点_机器学习实战项目-Logistic回归
- 空间计量经济学(4)---空间滞后与空间杜宾误差模型
- Python爬取笔趣阁小说,有趣又实用!
- 02 面向对象设计的七大原则
- 开源OSSIM企业运维疑难问题解析