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;
}
相关推荐
Elias不吃糖15 小时前
Java Lambda 表达式
java·开发语言·学习
guygg8815 小时前
一级倒立摆MATLAB仿真程序
开发语言·matlab
暮色_年华15 小时前
随想 2:对比 linux内核侵入式链表和 STL 非侵入链表
linux·c++·链表
情缘晓梦.15 小时前
C语言指针进阶
java·开发语言·算法
世转神风-16 小时前
qt-字符串版本与数值版本互转
开发语言·qt
极客代码16 小时前
深入解析C语言中的函数指针:原理、规则与实践
c语言·开发语言·指针·状态机·函数·函数指针
w-w0w-w16 小时前
C++模板参数与特化全解析
开发语言·c++
不绝19116 小时前
C#核心:继承
开发语言·c#
大锦终17 小时前
递归回溯综合练习
c++·算法·深度优先