我正在阅读亲爱的Imgui图书馆,我通过改变它来学习。我被窗户关闭困住了。我的窗口理论上是关闭的,小部件不起作用,但图形仍然呈现。
每个gui窗口 - ……
Begin 套 widnow->active 是的,但你永远不会把它重置为假,从不使用它。
Begin
widnow->active
你必须仔细阅读。 亲爱的Imgui's NewFrame() 方法将所有窗口的活动设置为false和 Render 检查窗口是否处于活动状态,如果是,则将其添加到绘图列表的向量中。
NewFrame()
Render
所以, New() 应该是这样的:
New()
void GUI::New() { currentWindowStack.resize(0); for(const auto& window : context.window) { window->active = false; } }
和 RenderPresent() 应该是这样的:
RenderPresent()
void GUI::RenderPresent() { for(const auto& window : context->window) { if(window->active) { guiRenderer.AddRenderData(window->renderer); } } guiRenderer.RenderPresent(); }