我想在OpenGL应用程序中创建一个简单的窗口系统。用文本框、按钮、复选框等呈现菜单。如何智能地呈现?
到目前为止,我有两个想法:
- 在每一帧中,我都会将菜单中的每个字符渲染到屏幕上
- 我将菜单/窗口保持在一个纹理中,并且每帧仅渲染该纹理。(并且仅更新纹理中已更改的部分。(
每种方法都有哪些缺点?
从第一个项目符号开始,然后可能实现第二个项目符号作为优化。第二个项目符号有时被称为"帧缓冲区缓存"。请注意,Dear ImGui(一个非常流行的GUI库,可以使用OpenGL进行渲染(并不关心帧缓冲区缓存。
如果您决定实现帧缓冲区缓存,那么您在一开始所做的工作不会被浪费,因为您将使用它来更新缓存。