C++/OpenGL应用程序

图像应用程序大部分是 C++ 编写,OpenGL 调用实现与 3D 渲染相关任务将会使用一些扩展库: GLEW、GLM、GLFW、SOLL2 等。

GLFW 库包含 GLFWwindow 类,我们可以在其上进行 3D 场景绘制。OpenGL 也向我们提供了用于 GLSL 程序载入可编程着色阶段并对其进行编译的命令。最后 OpenGL 使用缓冲将 3D 模型和其他相关图像数据发送到管线中。

复制代码
GLFWwindow 实例并为其设置背景颜色

初始化 GLFW
实例化 GLFWwindow
初始化 FLEW 
调用 init()
重复调用 display() 函数
cpp 复制代码
glClearColor() //命令指定了清楚背景时用的颜色,(1.0, 0.0, 0.0, 1.0) R G B 不透明
glClear(GL_COLOR_BUFFER_BIT);		// 红色填充颜色缓冲区 
cpp 复制代码
// 创建 GLFW 窗口, 参数为 宽,高,名称,全屏显示,资源共享
GLFWwindow* window = glfwCreateWindow(600, 600, "Chapter2 - 2.1", nullptr, nullptr);	
cpp 复制代码
#include <GL/glew.h>
#include <GLFW/glfw3.h>


#include <iostream>


using namespace std;

void init(GLFWwindow* window)
{

}

void display(GLFWwindow * window, double currentTime)
{
	glClearColor(1.0, 0.0, 0.0, 1.0);	// RGB 透明
	glClear(GL_COLOR_BUFFER_BIT);		// 红色填充颜色缓冲区
}

int main()
{	
	if (!glfwInit()) { exit(EXIT_FAILURE); }		// 初始化
	glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 4);	// 主版本
	glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 6);	// 小版本
	// 创建 GLFW 窗口, W, H, TileName, 全屏显示, 资源共享
	GLFWwindow* window = glfwCreateWindow(600, 600, "Chapter2 - 2.1", nullptr, nullptr);	
	glfwMakeContextCurrent(window);	// OpenGL 上下文与 GLFW 窗口关联

	if (glewInit() != GLEW_OK) { exit(EXIT_FAILURE); }	// 初始化
	glfwSwapInterval(1);	// 开启垂直同步

	init(window);

	// 简单的渲染循环
	while (!glfwWindowShouldClose(window)) {
		display(window, glfwGetTime());
		glfwSwapBuffers(window);
		glfwPollEvents();
	}

	glfwDestroyWindow(window);// 销毁窗口
	glfwTerminate();		  // 关闭窗口
	exit(EXIT_SUCCESS);
	return 0;
}
相关推荐
Wang's Blog32 分钟前
Java 项目实战: 外卖平台优化-Nginx配置文件结构与块层级
java·开发语言·nginx
2601_962071571 小时前
类变量和全局变量的查找路径有什么区别?
开发语言·python
hetao17338372 小时前
2026-10-03~04 hetao1733837 的刷题记录
c++·算法
\光辉岁月/2 小时前
5.java-数组
java·开发语言
Java后端的Ai之路2 小时前
Python进阶探索29_eval内置函数
开发语言·python·探索·eval·内置函数
谢亮_vipxieliang2 小时前
Spring 事务失效的常见场景
java·开发语言·数据库·spring boot
longlongzihan2 小时前
从LeetCode 70. 爬楼梯看动态规划:如何精准推导状态转移方程?
c++·算法·leetcode·动态规划
时间的拾荒人2 小时前
Qt 多线程详解:从 QThread 到实战
开发语言·qt·面试
郑州光合科技余经理3 小时前
海外版外卖加盟:总站与分站配送规则怎么分开管
java·开发语言·前端·后端·uni-app·php·ai编程
2601_962071573 小时前
类变量和全局变量的生命周期有什么区别?
java·开发语言·jvm