您好,欢迎访问代理记账网站
移动应用 微信公众号 联系我们

咨询热线 -

电话 15988168888

联系客服
  • 价格透明
  • 信息保密
  • 进度掌控
  • 售后无忧

opengl窗口创建

创建窗口

#include<iostream>
#define GLEW_STATIC
#include <GL/glew.h>
#include<GLFW/glfw3.h>
//检查用户是否按下了返回键Esc(如果没有按下,glfw将会返回GLFW_RELEASE.若按下将通过glfwSetWindowShouldClose的属性设为true方法关闭)
void processInput(GLFWwindow* window) {
	if (glfwGetKey(window, GLFW_KEY_BACKSPACE) == GLFW_PRESS)
	{
		glfwSetWindowShouldClose(window, true);
	}

}
//
void framebuffer_size_callback(GLFWwindow* window, int width, int height)
{
	glViewport(0, 0, width,height);
}
int main() {
	//实例化窗口
	glfwInit();
	glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR,3);
	glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR,3);
	glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
	//opengl GLFW   Window创建一个窗口对象  第一个参数是长  第二个参数是宽
	GLFWwindow* window = glfwCreateWindow(800, 600, "My OpenGL Game", NULL, NULL);
	if (window == NULL)
	{
		std::cout << "Open window failed." << std::endl;
		glfwTerminate(); //终止
		return -1;
	}
	glfwMakeContextCurrent(window);

	glfwSetFramebufferSizeCallback(window, framebuffer_size_callback);

	//Init GLEW
	glewExperimental = true;
	if (glewInit() != GLEW_OK)
	{
		printf("Init GLEW failed.");
		//关掉窗口
		glfwTerminate();
		return -1;
	}
	//渲染视口  first two parameters左下角位置, 后两个是渲染的宽和高(can set equal to GLFW's window size)
	//将你定义的坐标转换成屏幕坐标位置  (-0.5,-0.5)可被映射到屏幕中坐标(200,,450)
	//opengl坐标范围是(-1,1) 映射到屏幕上则是(0,800)和(0,600)
	glViewport(0, 0, 800, 600);
	while (!glfwWindowShouldClose(window))
	{
		//在渲染虚幻的每一个迭代中调用processInput
		processInput(window);
		//状态设置函数
		glClearColor(1.0f,0,0,1.0f);
		//状态使用的函数,它使用当前状态来获取应该清楚为的颜色
		glClear(GL_COLOR_BUFFER_BIT);
		//渲染循环
		glfwSwapBuffers(window);
		//获取键盘和鼠标的输入
		glfwPollEvents();
	}
	//循环结束需要释放分配的所有资源
	glfwTerminate();
	return 0;

}

分享:

低价透明

统一报价,无隐形消费

金牌服务

一对一专属顾问7*24小时金牌服务

信息保密

个人信息安全有保障

售后无忧

服务出问题客服经理全程跟进