开发日志

2024.6.18

这几日处于懒得写数学只想搓低级工程的状态。

SimCraft\text{SimCraft}做了套新的OpenGL\text{OpenGL}封装,现在作为GUI\text{GUI}小工具包个人认为还好用。

重写了相机类,分离了相机的参数和控制。设计了CRTP\text{CRTP}的相机控制器CameraController类。

今天发现glfw\text{glfw}可以通过glfwSetWindowUserPointer\text{glfwSetWindowUserPointer}glfwGetWindowUserPointer\text{glfwGetWindowUserPointer}来绑定任意的指针,这样就可以在glfw\text{glfw}的回调函数中访问到自己的类了。考虑到这两个函数不是类型安全的,配合CRTP\text{CRTP}可以为模板基类定义静态函数,将指针进行static_cast,这样的静态函数就可以直接被子类实例化为对应类型的函数,从而能直接返回子类类型的指针。在回调函数中就无需担忧类型安全。

问题是这样引入了模板,自然就引入了巨大的头文件,不知道怎么解决。