## 21.1 GLFW多线程渲染 整个引擎是基于GLFW的,首先要考虑的就是GLFW是否支持多线程渲染。 在谷歌一番后,找到了相关的答案。 GLFW包括了OpenGL图形库与操作系统的一些处理,操作系统的处理一般在主线程中,例如Window的窗口创建与消息循环,而OpenGL并没有限定在哪个线程进行处理。 所以本书中的多线程渲染方案是:主线程跑逻辑代码,另创建渲染线程跑OpenGL。 本小节就是来测试GLFW如何实现这种多线程渲染方案,用最简单的三角形项目。 主线程 主线程里主要干这些事情: 创建Window 处理逻辑 代码中,创建Window之后,实例化了 对象,并传入了 , 就管理着渲染线程。 这些和操作系统消息循环相关的,就放在主线程。 渲染线程 在创建 实例时,就会创建一个渲染线...
## 21.1 GLFW多线程渲染 整个引擎是基于GLFW的,首先要考虑的就是GLFW是否支持多线程渲染。 在谷歌一番后,找到了相关的答案。 GLFW包括了OpenGL图形库与操作系统的一些处理,操作系统的处理一般在主线程中,例如Window的窗口创建与消息循环,而OpenGL并没有限定在哪个线程进行处理。 所以本书中的多线程渲染方案是:主线程跑逻辑代码,另创建渲染线程跑OpenGL。 本小节就是来测试GLFW如何实现这种多线程渲染方案,用最简单的三角形项目。 主线程 主线程里主要干这些事情: 创建Window 处理逻辑 代码中,创建Window之后,实例化了 对象,并传入了 , 就管理着渲染线程。 这些和操作系统消息循环相关的,就放在主线程。 渲染线程 在创建 实例时,就会创建一个渲染线程,渲染线程立即启动,并开始编译Shader、渲染三角形。 简单说就是把原来在主线程中渲染三角形的代码,挪到了渲染线程中执行。 测试 测试结果也与 一致。