1

我正在使用 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 */
}
4

0 回答 0