【OPENGL菜鸟历程】
O.O从第一次知道OPENGL这个名字到现在已经有三年了,但是还是第一次真正去学这个东西。虽然在之前也大概看过DX,对这种东西的复杂度略知一二,并且做好了去长期啃这个的打算。但是,还是难啊(:зゝ∠)
我看的是LearnOpenGL这个教程,光是配置GLEW,GLFW就费了好久的功夫。唉,距离我的引擎梦,还差多久啊。
言归正传,本文中的代码可用性建立在你正确的配置了GLEW和GLFW的条件下,接下来有时间的话我会写一篇文章来说明如何在MAC OS下配置GLEW , GLFW,并使用Clion进行代码编写。
【CMakeList.txt文件】
1 | cmake_minimum_required(VERSION 3.8) |
其中set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -framework OPENGL")
,target_link_libraries(EmptyWindow "/usr/local/lib/libglfw.dylib")
和target_link_libraries(EmptyWindow "/usr/local/lib/libGLEW.dylib")
是对openGL的配置。
根据这几项的属性名就可以大概猜出来是要配置什么,第一个是链接OPENGL框架,第二个是链接glfw动态链接库,第三个自然就是glew的动态链接库了。
【EmptyWindow.cpp】
1 |
|
这是我的文件代码,最后的输出是一个根据时间动态变色的窗口,看起来还是很酷炫的。如果不实现这些花样仅仅是输出一个窗口的话,则可以去掉DisPlayColor
这个函数,并且将main方法里的while循环中的方法调用移除就可以了。
之所以使用while,是因为程序顺序执行,到了return 0退出,但是我们不想看见一个一闪而过的窗口,所以用一个while循环来让它持续显示。这个循环的循环条件!glfwWindowShouldClose(window)
顾名思义,是当窗口不应该退出的时候就继续循环。可是什么时候应该退出呢?这个时候就需要我们的事件处理了,这个以后再提。
当然,输出这样一个黑窗口确实有点丑,虽然刚开始学并不为了美观,但是强迫症还是想看的舒服一些,所以在循环里边添加这么两行代码。
1 | glClearColor(0 , 110 , 110 , 0.2f); //参数为 red , green , blue 最后一个参数暂时不管 |
这样,一个窗口就写好啦。