我正在使用 C++ 和 SDL2 设计一个即时 gui。当我开始设计我的框架时,我注意到基本上一切都需要渲染器或某种事件或其他相关信息(字体、主题等)。将这些放置为只有 gui 函数可以访问的全局静态对象是否有意义,或者只是继续传递所有内容。
这样可以吗?这可能是标题:
struct GuiForm {
GuiId active_id;
GuiId hot_id;
std::vector<Window> windows;
Renderer* renderer;
};
那么这可能是 .cpp 文件:
static GuiForm* gui_form;
void SomeGuiWidget() {
GuiId current_hot_id = gui_form.hot_id;
/* Whatever the widget is going to do */
}