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;
}
相关推荐
felixking19 分钟前
C++20 协程
开发语言·c++·协程
Zane1994122 小时前
CAS 与原子类:Java 如何实现无锁编程
java·开发语言
码农颜2 小时前
6.3 主函数流程剖析
开发语言·php
TheBestRucy3 小时前
Python 九阳神功:从零筑基到线程飞升
服务器·开发语言·网络·人工智能·python
研☆香3 小时前
聊一聊前端的常见字 关键字
开发语言·前端·javascript
小小龙学IT3 小时前
FlatBuffers 深度解析:Google 开源零拷贝序列化库完全指南
c++·开源
wuminyu4 小时前
JDK21中虚拟线程和FFM协同实现高并发源码剖析
java·linux·c语言·jvm·c++
草莓橙子碗4 小时前
Claude 使用指南
开发语言·python
SWAGGY..4 小时前
【C++进阶】:(1)继承机制详解
java·jvm·c++
longxiaozhang64 小时前
C# Array类:数组其实没那么难
开发语言·c#