mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-11-04 15:11:05 +01:00 
			
		
		
		
	Mde it optional to new() io.Font - however it stills needs to be loaded.
This commit is contained in:
		
							
								
								
									
										25
									
								
								imgui.cpp
									
									
									
									
									
								
							
							
						
						
									
										25
									
								
								imgui.cpp
									
									
									
									
									
								
							@@ -417,6 +417,12 @@ ImGuiStyle::ImGuiStyle()
 | 
			
		||||
    Colors[ImGuiCol_TooltipBg]              = ImVec4(0.05f, 0.05f, 0.10f, 0.90f);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// We statically allocate a default font storage for the user.
 | 
			
		||||
// This allows the user to avoid newing the default font, while keeping IO.Font a pointer which is easy to swap if needed.
 | 
			
		||||
// We cannot new() the font because user may override MemAllocFn after the ImGuiIO() constructor is called.
 | 
			
		||||
// For the same reason we cannot call LoadDefault() on the font.
 | 
			
		||||
static ImFont GDefaultStaticFont;
 | 
			
		||||
 | 
			
		||||
ImGuiIO::ImGuiIO()
 | 
			
		||||
{
 | 
			
		||||
    memset(this, 0, sizeof(*this));
 | 
			
		||||
@@ -425,7 +431,7 @@ ImGuiIO::ImGuiIO()
 | 
			
		||||
    IniSavingRate = 5.0f;
 | 
			
		||||
    IniFilename = "imgui.ini";
 | 
			
		||||
    LogFilename = "imgui_log.txt";
 | 
			
		||||
    Font = NULL;
 | 
			
		||||
    Font = &GDefaultStaticFont;
 | 
			
		||||
    FontGlobalScale = 1.0f;
 | 
			
		||||
    FontAllowUserScaling = false;
 | 
			
		||||
    PixelCenterOffset = 0.0f;
 | 
			
		||||
@@ -1663,8 +1669,11 @@ void ImGui::Shutdown()
 | 
			
		||||
    }
 | 
			
		||||
    if (g.IO.Font)
 | 
			
		||||
    {
 | 
			
		||||
        g.IO.Font->~ImFont();
 | 
			
		||||
        ImGui::MemFree(g.IO.Font);
 | 
			
		||||
        if (g.IO.Font != &GDefaultStaticFont)
 | 
			
		||||
        {
 | 
			
		||||
            g.IO.Font->~ImFont();
 | 
			
		||||
            ImGui::MemFree(g.IO.Font);
 | 
			
		||||
        }
 | 
			
		||||
        g.IO.Font = NULL;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -6146,9 +6155,9 @@ void ImDrawList::AddText(ImFont* font, float font_size, const ImVec2& pos, ImU32
 | 
			
		||||
    if (text_end == NULL)
 | 
			
		||||
        text_end = text_begin + strlen(text_begin);
 | 
			
		||||
 | 
			
		||||
	const bool push_texture_id = font->TexID != texture_id_stack.back();
 | 
			
		||||
	if (push_texture_id)
 | 
			
		||||
		PushTextureID(font->TexID);
 | 
			
		||||
    const bool push_texture_id = font->TexID != texture_id_stack.back();
 | 
			
		||||
    if (push_texture_id)
 | 
			
		||||
        PushTextureID(font->TexID);
 | 
			
		||||
 | 
			
		||||
    // reserve vertices for worse case
 | 
			
		||||
    const unsigned int char_count = (unsigned int)(text_end - text_begin);
 | 
			
		||||
@@ -6164,8 +6173,8 @@ void ImDrawList::AddText(ImFont* font, float font_size, const ImVec2& pos, ImU32
 | 
			
		||||
    commands.back().vtx_count -= (unsigned int)(vtx_count_max - vtx_count);
 | 
			
		||||
    vtx_write -= (vtx_count_max - vtx_count);
 | 
			
		||||
 | 
			
		||||
	if (push_texture_id)
 | 
			
		||||
		PopTextureID();
 | 
			
		||||
    if (push_texture_id)
 | 
			
		||||
        PopTextureID();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void ImDrawList::AddImage(ImTextureID user_texture_id, const ImVec2& a, const ImVec2& b, const ImVec2& uv0, const ImVec2& uv1, ImU32 col)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user