MCPcopy Create free account
hub / github.com/Norbyte/bg3se / Update

Method Update

BG3Extender/Extender/Client/IMGUI/IMGUI.cpp:2126–2181  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2124}
2125
2126void IMGUIManager::Update()
2127{
2128 if (!enableUI_
2129 || !initialized_
2130 || !objects_
2131 || !renderer_->IsInitialized()) {
2132
2133 IMGUI_FRAME_DEBUG("Skip drawing - enableUI %d, initialized %d, objects %d, rendererInitialized %d",
2134 enableUI_ ? 1 : 0, initialized_ ? 1 : 0, objects_ ? 1 : 0, renderer_->IsInitialized() ? 1 : 0);
2135 frameNo_++;
2136 return;
2137 }
2138
2139 OPTICK_EVENT("IMGUI Update");
2140 if (scale_ != requestedScale_
2141 || uiScaleMultiplier_ != requestedUiScaleMultiplier_
2142 || fontScaleMultiplier_ != requestedFontScaleMultiplier_) {
2143 UpdateStyle();
2144 }
2145
2146 {
2147 OPTICK_EVENT("SDL New Frame", Optick::Category::Rendering);
2148 std::lock_guard _(sdl_.GetSDLMutex());
2149 sdl_.NewFrame();
2150 }
2151
2152 auto defaultFont = GetFont(GFS.strMedium);
2153 if (defaultFont != nullptr && defaultFont->Font != nullptr) {
2154 ImGui::GetIO().FontDefault = defaultFont->Font;
2155 }
2156
2157 if (frameNo_ == 0) {
2158 IMGUI_DEBUG("Draw initial frame");
2159 }
2160
2161 frameNo_++;
2162
2163 textureLoader_.Update();
2164 renderer_->NewFrame();
2165 ImGui::NewFrame();
2166
2167 DrawingContext dc{
2168 .UIScale = scale_
2169 };
2170 objects_->Render(dc);
2171 se_assert(dc.ScalingStack.empty());
2172
2173 {
2174 OPTICK_EVENT("IMGUI Render", Optick::Category::Rendering);
2175 ImGui::Render();
2176 }
2177
2178 renderer_->FinishFrame();
2179
2180 objects_->ClientUpdate();
2181}
2182
2183void IMGUITextureLoader::BindRenderer(RenderingBackend* renderer)

Callers 1

OnUpdateGuardedMethod · 0.45

Calls 9

NewFrameMethod · 0.80
RenderMethod · 0.80
ClientUpdateMethod · 0.80
UnregisterTextureMethod · 0.80
IsInitializedMethod · 0.45
emptyMethod · 0.45
ValueMethod · 0.45
push_backMethod · 0.45
removeMethod · 0.45

Tested by

no test coverage detected