创建窗口
需要头文件 glfw3.h
|
|
-
初始化 glfw
glfwInit():初始化,返回0表示正常 -
创建窗口
glfwCreateWindow():创建窗口,接收窗口的长和宽,返回指向窗口对象的 指针。1GLFWwindow *window = glfwCreateWindow(1280, 720, "GED", nullptr, nullptr); -
设置窗口位置
glfwSetWindowPos():设置窗口出现在电脑屏幕的何处,视具体电脑而异。1glfwSetWindowPos(window, 1000, 150)
这一步最重要的是获得窗口对象的指针。之后要设置和操作这个窗口,就要传入指针。
初始化OPENGL
OPENGL的驱动一般包含在各个显卡的驱动中,不用额外下载。除非你电脑刚买或者完全不联网不玩游戏
需要一个库来获得OPENGL的函数指针,常用glad。
包含头文件 glad.h
|
|
-
确定opengl版本
这一步是对整个glfw操作,所以要在初始化glfw之后,创建window之前。
glfwWindowHint:多重载函数,接收不同的命令设置不同的参数。1 2 3glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); // opengl大版本 glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3); // opengl小版本 glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); -
与window关联
glfwMakeContextCurrent:将设置的OPENGL信息与window关联。1glfwMakeContextCurrent(window); -
使用glad加载函数指针
gladLoadGLLoader():返回值应为0。1gladLoadGLLoader((GLADloadproc)glfwGetProcAddress)
颜色
OPENGL有四个颜色通道:
- Red:红
- Green:绿
- Blue:蓝
- Alpha:透明度
传值可以用RGB,取值范围: $[0,255]$ ;也可以是将其归一化后的浮点数,取整范围 $[0.0,1.0]$
旧版本一些函数不支持整数类型,因此必须使用归一化后的浮点数。可自定义归一化函数,方便传入RGB常规色值。
-
设置window背景颜色
glClearColor():接收red、green、blue、alpha四个值。1glClearColor(1.0f, 0.5f, 0.7f, 0.2f); -
让设置生效
glClear():从颜色缓存里加载。1glClear(GL_COLOR_BUFFER_BIT);
上面的设置背景实际上不会生效,因为opengl使用双缓冲方案。
交换双缓冲
opengl使用双缓冲方案,在每生成下一帧时实际操作的是后缓冲区,要把后缓冲区交换成当前缓冲区。
交换缓冲的函数:
|
|