OpenGL -- 创建第一个窗体程序(1)

学习资料来源

Joey de Vries 的 OpenGL入门教程

英文版地址 :https://learnopengl.com/

中文版地址 :https://learnopengl-cn.github.io/

OpenGL官网 :https://www.opengl.org/

OpenGL各版本规范与扩展:https://www.khronos.org/registry/OpenGL/index_gl.php

GLFW官网 : https://www.glfw.org/

GLAD官网 : https://glad.dav1d.de/

 

#include <glad\glad.h>
#include <glfw3.h>
#include <iostream>

int main() {
	//glfw初始化
	glfwInit();
	//设置OpenGL 版本号3.3
	glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR,3);
	glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
	//设置OpenGL工作模式为核心模式
	glfwWindowHint(GLFW_OPENGL_PROFILE,GLFW_OPENGL_CORE_PROFILE);
	//创建窗体
	GLFWwindow* glfwWindow = glfwCreateWindow(800, 600, "LearnOpenGL01", NULL, NULL);
	if (glfwWindow == NULL) {
		std::cout << "err ==== createWindow fail" << std::endl;
		glfwTerminate();
		return -1;
	}
	//设置窗体为当前线程的主上下文
	glfwMakeContextCurrent(glfwWindow);
	
	//glad初始化 用来管理OpenGL的函数指针(不初始化的话 使用不了OpenGL的函数) 
	if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress))
	{
		std::cout << "Failed to initialize GLAD" << std::endl;
		return -1;
	}
	
	//主逻辑循环 当窗体没有关闭的时候执行
	while (!glfwWindowShouldClose(glfwWindow)) {
		//设置清除颜色RGBA
		glClearColor(0.2f, 0.3f, 0.3f, 1.0f);
		//使用颜色Buff清除窗口
		glClear(GL_COLOR_BUFFER_BIT);
		//接受事件触发,更新窗体的状态
		glfwPollEvents();
		//交换颜色缓冲区,渲染指令在后缓冲绘制 ,前缓冲用来输出显示到屏幕 
		glfwSwapBuffers(glfwWindow);
	}

	glfwTerminate();
	
	return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值