加载过慢请开启缓存 浏览器默认开启
在 Git 本地仓库中将你新添加的文件纳入版本控制,通常需要执行以下步骤:
运行以下命令查看当前仓库的状态,确保你的新文件未被 Git 跟踪:
远程仓库并不复杂, 在如今的云计算盛行的世界很容易把远程仓库想象成一个富有魔力的东西, 但实际上它们只是你的仓库在另个一台计算机上的拷贝。你可以通过因特网与这台计算机通信 —— 也就是增加或是获取提交记录
在这个过程中我们看到了cherno试图将Hazel的平台层抽象出来,然后为不同的平台兼容腾出空间,虽然目前都是基于windows和glfw,但后面肯定是可以是实现的,就像后面的cherno将渲染层也抽象出来,为基于openGL的渲染实现了一份。这种思路很想我们之前看懂imgui的为了可移植性和兼容性的设计。
首相我们要修改Hazel的链接方式为静态库,同时将premake.lua中的配置做如下的修改
需要将glfw的键码提出来放在平台层,创建属于引擎的键码,然后在不同的平台的实现文件做出转换键码。
这就像imgui呗,里面好多有imgui专属的键码,到了imgui_glfw内部还需要转换,glfw需要把自己的转换为imgui专属键码。
就是简单定义了HAZEL内部的键码,至于过多的转换等等,还没涉及。可能后面会补上。
他承认了确实将imgui_glfw的功能大部分放入了Imgui_Layer中实现了。
之前在imgui的笔记中也说过,cherno将渲染层opengl的imgui文件自己命名ImguiOpenGLRenderer,同时将glfw3的实现抽出来放在了imguiLayer中的文件中。
但是这样自己维护和功能的更新就带来了麻烦
渲染简介
OpenGL抽象的渲染流程
前面的设计中我们也提过,我们要一步一步抽象出来,摆脱对平台和渲染API的依赖,所以这一集就抽象出了OpenGL的context(上下文),主要功能是在使用 GLFW 创建的窗口中初始化 OpenGL 并进行渲染。
目前默认都是使用glfw来管理窗口和状态,所以不做抽象分离。
一个高性能的数学库通常需要利用 SIMD(单指令多数据)指令集来加速向量、矩阵等数据的并行计算,而实现这些操作通常依赖于编译器提供的内置函数(intrinsics)或直接编写汇编代码。
对于应用,我们都需要layer去处理渲染顺序和用户事件响应。
漫无目的的人生何时能找到方向