[OpenGL] 一.简易上手创建第一个Window窗口

学习于LearnOpenGl 开了个学习图形学的新坑!
首先要提前准备好两个文件glew-2.1.0-win32.zip、glfw-3.2.1.bin.WIN32.zip
文件已放于github请自行下载

一.配置头文件

在VS中创建一个新的C++ Windows 控制台应用程序 ,然后打开"解决方案资源管理器",如图创建的项目右键"属性"

进去后,记得先把"配置"和"平台"改为"所有配置"和"所有平台",然后如下图配置即可

1.


2.


3.


上述配置完成后,即可引入头文件了!

二.创建我们第一个window窗口

直接上代码了,有详细的注释解释代码的意思

#define GLEW_STATIC //使用静态链接库
#include<GL/glew.h>
#include<GLFW/glfw3.h> 
#include<iostream>

//回调函数
void processInput(GLFWwindow* window) {
	if (glfwGetKey(window, GLFW_KEY_ESCAPE) == GLFW_PRESS) {//按住Escape键
		glfwSetWindowShouldClose(window, true);//退出窗口
	}
}
int main() {
	//固定格式
	glfwInit();//初始化GLFW库
	glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);//定义最高版本为3
	glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);//定义最低版本为3
	glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);

	//Open GLFW Window
	GLFWwindow* window = glfwCreateWindow(800, 600, "My OpenGL Game", NULL, NULL);//创建一个窗口800×600 第三个参数为标题名
	if (window == NULL) 
	{
		printf("Open window failed.");
		glfwTerminate();//关闭中止窗口
		return -1;
	}
	glfwMakeContextCurrent(window); //选择当前的window作为主线程

	//Init GLEW
	glewExperimental = true;//能让GLEW在管理OpenGL的函数指针时更多地使用现代化的技术
	if (glewInit() != GLEW_OK) 
	{
		printf("Init GLEW failed");
		glfwTerminate();
		return -1;
	}

	glViewport(0, 0, 800, 600);//前两个参数是窗口的左下角的位置,后两个参数设置宽高

	//为了不让我们的程序花了一个简单的图像就立即退出或者关闭窗口,我们需要创建一个渲染循环(render loop)
	while (!glfwWindowShouldClose(window)) 
	{
		//输入
		processInput(window);

		glClearColor(1.0f, 1.0F, 0, 1.0f);//当调用glClear()清除颜色缓冲之后,整个颜色缓冲会被填充为设置里的颜色
		glClear(GL_COLOR_BUFFER_BIT);//清空颜色缓冲


		glfwSwapBuffers(window);//分为front buffer和back buffer,front buffer解决最终输出在屏幕上的图片,
		//在渲染的时候都是在back buffer中进行,一旦渲染指令完成了,就交换back buffer和front buffer完成目标
		glfwPollEvents();//接受用户的交互操作指令
		
	}

	glfwTerminate();//释放GLFW分配的内存
	return 0;
}

运行一下:
黄色的原因是glClearColor(1.0f,1.0f,0,1.0f) 四个参数分别代表rgba:red,green,blue,alpha,红+绿=黄

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值