|
|
|
@ -4525,6 +4525,27 @@ void ImGui::UpdateHoveredWindowAndCaptureFlags() |
|
|
|
|
io.WantTextInput = (g.WantTextInputNextFrame != -1) ? (g.WantTextInputNextFrame != 0) : false; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Calling SetupDrawListSharedData() is followed by SetCurrentFont() which sets up the remaining data.
|
|
|
|
|
static void SetupDrawListSharedData() |
|
|
|
|
{ |
|
|
|
|
ImGuiContext& g = *GImGui; |
|
|
|
|
ImRect virtual_space(FLT_MAX, FLT_MAX, -FLT_MAX, -FLT_MAX); |
|
|
|
|
for (ImGuiViewportP* viewport : g.Viewports) |
|
|
|
|
virtual_space.Add(viewport->GetMainRect()); |
|
|
|
|
g.DrawListSharedData.ClipRectFullscreen = virtual_space.ToVec4(); |
|
|
|
|
g.DrawListSharedData.CurveTessellationTol = g.Style.CurveTessellationTol; |
|
|
|
|
g.DrawListSharedData.SetCircleTessellationMaxError(g.Style.CircleTessellationMaxError); |
|
|
|
|
g.DrawListSharedData.InitialFlags = ImDrawListFlags_None; |
|
|
|
|
if (g.Style.AntiAliasedLines) |
|
|
|
|
g.DrawListSharedData.InitialFlags |= ImDrawListFlags_AntiAliasedLines; |
|
|
|
|
if (g.Style.AntiAliasedLinesUseTex && !(g.IO.Fonts->Flags & ImFontAtlasFlags_NoBakedLines)) |
|
|
|
|
g.DrawListSharedData.InitialFlags |= ImDrawListFlags_AntiAliasedLinesUseTex; |
|
|
|
|
if (g.Style.AntiAliasedFill) |
|
|
|
|
g.DrawListSharedData.InitialFlags |= ImDrawListFlags_AntiAliasedFill; |
|
|
|
|
if (g.IO.BackendFlags & ImGuiBackendFlags_RendererHasVtxOffset) |
|
|
|
|
g.DrawListSharedData.InitialFlags |= ImDrawListFlags_AllowVtxOffset; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void ImGui::NewFrame() |
|
|
|
|
{ |
|
|
|
|
IM_ASSERT(GImGui != NULL && "No current context. Did you call ImGui::CreateContext() and ImGui::SetCurrentContext() ?"); |
|
|
|
@ -4567,23 +4588,9 @@ void ImGui::NewFrame() |
|
|
|
|
|
|
|
|
|
// Setup current font and draw list shared data
|
|
|
|
|
g.IO.Fonts->Locked = true; |
|
|
|
|
SetupDrawListSharedData(); |
|
|
|
|
SetCurrentFont(GetDefaultFont()); |
|
|
|
|
IM_ASSERT(g.Font->IsLoaded()); |
|
|
|
|
ImRect virtual_space(FLT_MAX, FLT_MAX, -FLT_MAX, -FLT_MAX); |
|
|
|
|
for (ImGuiViewportP* viewport : g.Viewports) |
|
|
|
|
virtual_space.Add(viewport->GetMainRect()); |
|
|
|
|
g.DrawListSharedData.ClipRectFullscreen = virtual_space.ToVec4(); |
|
|
|
|
g.DrawListSharedData.CurveTessellationTol = g.Style.CurveTessellationTol; |
|
|
|
|
g.DrawListSharedData.SetCircleTessellationMaxError(g.Style.CircleTessellationMaxError); |
|
|
|
|
g.DrawListSharedData.InitialFlags = ImDrawListFlags_None; |
|
|
|
|
if (g.Style.AntiAliasedLines) |
|
|
|
|
g.DrawListSharedData.InitialFlags |= ImDrawListFlags_AntiAliasedLines; |
|
|
|
|
if (g.Style.AntiAliasedLinesUseTex && !(g.Font->ContainerAtlas->Flags & ImFontAtlasFlags_NoBakedLines)) |
|
|
|
|
g.DrawListSharedData.InitialFlags |= ImDrawListFlags_AntiAliasedLinesUseTex; |
|
|
|
|
if (g.Style.AntiAliasedFill) |
|
|
|
|
g.DrawListSharedData.InitialFlags |= ImDrawListFlags_AntiAliasedFill; |
|
|
|
|
if (g.IO.BackendFlags & ImGuiBackendFlags_RendererHasVtxOffset) |
|
|
|
|
g.DrawListSharedData.InitialFlags |= ImDrawListFlags_AllowVtxOffset; |
|
|
|
|
|
|
|
|
|
// Mark rendering data as invalid to prevent user who may have a handle on it to use it.
|
|
|
|
|
for (ImGuiViewportP* viewport : g.Viewports) |
|
|
|
|