#include <iostream>
#include <process.h>
#include <GLFW/glfw3.h>
#include <glad/glad.h>
void framebuffer_size_callback(GLFWwindow* window, int width, int height)
{
glViewport(0, 0, width, height);
}
// 在GLFW中实现一些输入控制,使用GLFW的glfwGetKey函数
void processInput(GLFWwindow *window)
{
if (glfwGetKey(window, GLFW_KEY_ESCAPE) == GLFW_PRESS)
glfwSetWindowShouldClose(window, true);
}
int main(void) {
glfwInit();
/*
请确认您的系统支持OpenGL3.3或更高版本,否则此应用有可能会
崩溃或者出现不可预知的错误。如果想要查看OpenGL版本的话,
在Linux上运行glxinfo,或者在Windows上使用其它的工具(例如
OpenGL Extension Viewer)。如果你的OpenGL版本低于3.3,检
查一下显卡是否支持OpenGL 3.3+(不支持的话你的显卡真的太老
了),并更新你的驱动程序,有必要的话请更新显卡。
*/
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
// 如果使用的是Mac OS X系统,你还需要加下面这行代码到你的
// 初始化代码中这些配置才能起作用
//glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);
// 创建一个窗口对象,这个窗口对象存放了所有和窗口相关的数据,
// 而且会被GLFW的其他函数频繁地用到
// glfwCreateWindow函数需要窗口的宽和高作为它的前两个参数。
// 第三个参数表示这个窗口的名称(标题),最后两个参数暂时忽略。
// 函数会返回一个GLFWwindow对象,我们会在其它的GLFW操作中使用到。
GLFWwindow* window = glfwCreateWindow(800, 600, "QQ:21497936", NULL, NULL);
if (window == NULL)
{
std::cout << "Failed to create GLFW window" << std::endl;
glfwTerminate();
return -1;
}
glfwMakeContextCurrent(window);
// GLAD是用来管理OpenGL的函数指针的,所以在调用任何OpenGL的函数
// 之前我们需要初始化GLAD。
if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress))
{
std::cout << "Failed to initialize GLAD" << std::endl;
return -1;
}
// 还需要注册这个函数,告诉GLFW我们希望每当窗口调整大小的时候调用这个函数。
glfwSetFramebufferSizeCallback(window, framebuffer_size_callback);
// 我们必须告诉OpenGL渲染窗口的尺寸大小,即视口(Viewport),
// 这样OpenGL才只能知道怎样根据窗口大小显示数据和坐标。
// 可以通过调用glViewport函数来设置窗口的维度(Dimension)。
// OpenGL幕后使用glViewport中定义的位置和宽高进行2D坐标的转
// 换,将OpenGL中的位置坐标转换为你的屏幕坐标。例如,OpenGL
// 中的坐标(-0.5, 0.5)有可能(最终)被映射为屏幕中的坐标(200,450)。
// 注意,处理过的OpenGL坐标范围只为-1到1,因此我们事实上
// 将(-1到1)范围内的坐标映射到(0, 800)和(0, 600)。
glViewport(0, 0, 800, 600);
// 在我们主动关闭它之前不断绘制图像并能够接受用户输入。因此,
// 需要在程序中添加一个while循环,我们可以把它称之为渲染循环(Render Loop),
// 它能在我们让GLFW退出前一直保持运行。
while (!glfwWindowShouldClose(window))
{
// 捕捉输入
processInput(window);
// 清空颜色缓冲
// 添加渲染指令,背景透明无效
glClearColor(1.0f, 0.0f, 0.0f, 0.0f);
glClear(GL_COLOR_BUFFER_BIT);
// 检查并调用事件,交换缓冲(执行交换缓存才会更新新数据到界面)
glfwSwapBuffers(window);
glfwPollEvents();
}
// 当渲染循环结束后我们需要正确释放/删除之前的分配的所有资源。
glfwTerminate();
return 0;
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
OpenGL VS2015 工程模板.rar (67个子文件)
Demo1
.vs
Demo1
v14
.suo 66KB
.git
index 448B
hooks
README.sample 177B
config 691B
description 73B
refs
tags
heads
master 41B
logs
refs
heads
master 350B
HEAD 350B
objects
1f
f0c423042b46cb1d617b81efb715defbe8054d 751B
ab
97d0889afdcf8ee7c047faada5d882ff5eaa38 198B
27
a14be1e362f99e5598de19ada1670d83e5e300 152B
b0
bec5adb8c097e218c7dbb602ae7775188b7677 169B
33
362f79b55629e056c61ef4fbc867cb1867e2f1 1KB
info
f0
29cd1f2b81c04323e8ee8e65a1f289e55c166c 436B
a5
1e0e0cf4c10f8600a151668962b9d985e24c49 90B
pack
1c
9a181a44b4f9a105f0dc71a40ad0284ab6a7c4 2KB
0d
76fe4328089e5b63a9c4190badacfc35ef2624 89B
03
c8628ac32f6c2debacf6ab9582d84eb675e621 457B
info
exclude 113B
ms-persist.xml 150B
HEAD 23B
Demo1.VC.db 29.06MB
Demo1
Demo1.vcxproj 8KB
Demo1.vcxproj.filters 1KB
x64
Debug
Demo1.Build.CppClean.log 792B
vc140.pdb 364KB
Demo1.tlog
CL.write.1.tlog 836B
CL.read.1.tlog 30KB
CL.command.1.tlog 1KB
link.write.1.tlog 502B
Demo1.lastbuildstate 191B
link.command.1.tlog 1KB
link.read.1.tlog 3KB
Demo1.log 160B
glad.obj 259KB
main.obj 56KB
vc140.idb 443KB
main.cpp 3KB
Debug
vc140.pdb 364KB
Demo1.tlog
CL.write.1.tlog 788B
CL.read.1.tlog 30KB
unsuccessfulbuild 0B
CL.command.1.tlog 1KB
link.3208.write.1.tlog 2B
link.3208-cvtres.read.1.tlog 2B
link-cvtres.read.1.tlog 2B
link.3208-rc.write.1.tlog 2B
link.write.1.tlog 462B
link-rc.write.1.tlog 2B
Demo1.lastbuildstate 193B
link-cvtres.write.1.tlog 2B
link.command.1.tlog 1KB
link-rc.read.1.tlog 2B
link.read.1.tlog 4KB
link.3208-cvtres.write.1.tlog 2B
link.3208.read.1.tlog 2B
link.3208-rc.read.1.tlog 2B
Demo1.log 2KB
glad.obj 175KB
main.obj 48KB
vc140.idb 451KB
Demo1.sln 1KB
x64
Debug
Demo1.exe 255KB
Demo1.ilk 982KB
Demo1.pdb 1.52MB
.gitignore 4KB
.gitattributes 3KB
共 67 条
- 1
资源评论
- niwawa992020-05-29很好的资源,谢谢分享
- zhao1azhao2018-11-05是个非常有用的资源
- sunylf2018-04-17好像没看到代码啊?下载过的一起来说说。长沙红胖子Qt2018-09-14有代码,就在main和glad.c
长沙红胖子Qt
- 粉丝: 13w+
- 资源: 210
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功