学习笔记:OpenGL设置窗口(利用GLFW和GLEW)

#include<GL\glew.h>
#include<GLFW\glfw3.h>
#include<iostream>
//#pragma comment(lib,"glew32.lib")
using namespace std;
void init(GLFWwindow* window) {}
void display(GLFWwindow* window, double currentTime)
{
    glClearColor(1.0, 0.0, 0.0, 1.0);//重置缓冲区时填充的颜色
    glClear(GL_COLOR_BUFFER_BIT);
    //GL_COLOR_BUFFER_BIT引用了包含渲染后像素的颜色缓冲区
    //glClear用glClearColor设置的颜色清除该缓冲区的颜色
}
int main(void)
{
    if (!glfwInit()) { exit(EXIT_FAILURE); }//GLFW使用glfwInit()初始化
    //WindowHint指定了机器必须与OpenGL版本4.3兼容
    glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 4);//“主版本号”=4
    glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);//“次版本号”=3
    //glfwCreateWindow创建GLFW窗口及相关的OpenGL上下文,其可选项由WindowHints设置
    //“上下文”是指OpenGL实例及其状态信息,其中包括诸如颜色缓冲区之类的项
    GLFWwindow* window = glfwCreateWindow(600, 600, "Chapter2 - program1", NULL, NULL);
    //glfwCreateWindow参数(6个):窗口宽、高(以像素为单位)、窗口顶部标题、
    //允许全屏显示、允许信息共享(本例中未用到,设置为NULL)
    glfwMakeContextCurrent(window);//GLFW窗口不会自动将它与当前的OpenGL上下文关联起来
    //因此需要glfwMakeContextCurrent
    if (glewInit() != GLEW_OK) { exit(EXIT_FAILURE); }//GLEW使用glewInit()初始化
    glfwSwapInterval(1);//glfwSwapInterval和glfwSwapBuffers用来开启垂直同步(Vsync)
    //垂直同步是涉及到显卡和显示器的一个概念,当开启了垂直同步,显卡将在渲染完成一帧图像之后
    //等待垂直同步信号的到来,否则无法绘制下一帧
    init(window);
    while (!glfwWindowShouldClose(window))
    {
        display(window, glfwGetTime());//将时间传入display函数
        //方便保证动画在不同计算机上以相同速度播放
        //glfwGetTime返回GLFW初始化后经过的时间
        glfwSwapBuffers(window);//绘制屏幕
        glfwPollEvents();//处理窗口相关事件,如按键事件
    }
    glfwDestroyWindow(window);//glfwDestoryWindow通知GLFW销毁窗口
    glfwTerminate();//glfwTerminate通知GLFW终止运行
    exit(EXIT_SUCCESS);
}

1、OpenGL实际上并不是把图像直接绘制到计算机屏幕上,而是渲染到一个帧缓冲区,然后需要这台机器负责把帧缓冲区的内容绘制到屏幕上的一个窗口中
2、GLFW窗口默认是双缓冲的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Spray!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值