|
@@ -1378,6 +1378,7 @@ static const ImVec2 FONT_ATLAS_DEFAULT_TEX_CURSOR_DATA[ImGuiMouseCursor_COUNT][3
|
|
|
|
|
|
ImFontAtlas::ImFontAtlas()
|
|
|
{
|
|
|
+ Locked = false;
|
|
|
Flags = 0x00;
|
|
|
TexID = NULL;
|
|
|
TexDesiredWidth = 0;
|
|
@@ -1394,11 +1395,13 @@ ImFontAtlas::ImFontAtlas()
|
|
|
|
|
|
ImFontAtlas::~ImFontAtlas()
|
|
|
{
|
|
|
+ IM_ASSERT(!Locked && "Cannot modify a locked ImFontAtlas between NewFrame() and EndFrame/Render()!");
|
|
|
Clear();
|
|
|
}
|
|
|
|
|
|
void ImFontAtlas::ClearInputData()
|
|
|
{
|
|
|
+ IM_ASSERT(!Locked && "Cannot modify a locked ImFontAtlas between NewFrame() and EndFrame/Render()!");
|
|
|
for (int i = 0; i < ConfigData.Size; i++)
|
|
|
if (ConfigData[i].FontData && ConfigData[i].FontDataOwnedByAtlas)
|
|
|
{
|
|
@@ -1421,6 +1424,7 @@ void ImFontAtlas::ClearInputData()
|
|
|
|
|
|
void ImFontAtlas::ClearTexData()
|
|
|
{
|
|
|
+ IM_ASSERT(!Locked && "Cannot modify a locked ImFontAtlas between NewFrame() and EndFrame/Render()!");
|
|
|
if (TexPixelsAlpha8)
|
|
|
ImGui::MemFree(TexPixelsAlpha8);
|
|
|
if (TexPixelsRGBA32)
|
|
@@ -1431,6 +1435,7 @@ void ImFontAtlas::ClearTexData()
|
|
|
|
|
|
void ImFontAtlas::ClearFonts()
|
|
|
{
|
|
|
+ IM_ASSERT(!Locked && "Cannot modify a locked ImFontAtlas between NewFrame() and EndFrame/Render()!");
|
|
|
for (int i = 0; i < Fonts.Size; i++)
|
|
|
IM_DELETE(Fonts[i]);
|
|
|
Fonts.clear();
|
|
@@ -1485,6 +1490,7 @@ void ImFontAtlas::GetTexDataAsRGBA32(unsigned char** out_pixels, int* out_wid
|
|
|
|
|
|
ImFont* ImFontAtlas::AddFont(const ImFontConfig* font_cfg)
|
|
|
{
|
|
|
+ IM_ASSERT(!Locked && "Cannot modify a locked ImFontAtlas between NewFrame() and EndFrame/Render()!");
|
|
|
IM_ASSERT(font_cfg->FontData != NULL && font_cfg->FontDataSize > 0);
|
|
|
IM_ASSERT(font_cfg->SizePixels > 0.0f);
|
|
|
|
|
@@ -1546,6 +1552,7 @@ ImFont* ImFontAtlas::AddFontDefault(const ImFontConfig* font_cfg_template)
|
|
|
|
|
|
ImFont* ImFontAtlas::AddFontFromFileTTF(const char* filename, float size_pixels, const ImFontConfig* font_cfg_template, const ImWchar* glyph_ranges)
|
|
|
{
|
|
|
+ IM_ASSERT(!Locked && "Cannot modify a locked ImFontAtlas between NewFrame() and EndFrame/Render()!");
|
|
|
size_t data_size = 0;
|
|
|
void* data = ImFileLoadToMemory(filename, "rb", &data_size, 0);
|
|
|
if (!data)
|
|
@@ -1567,6 +1574,7 @@ ImFont* ImFontAtlas::AddFontFromFileTTF(const char* filename, float size_pixels,
|
|
|
// NB: Transfer ownership of 'ttf_data' to ImFontAtlas, unless font_cfg_template->FontDataOwnedByAtlas == false. Owned TTF buffer will be deleted after Build().
|
|
|
ImFont* ImFontAtlas::AddFontFromMemoryTTF(void* ttf_data, int ttf_size, float size_pixels, const ImFontConfig* font_cfg_template, const ImWchar* glyph_ranges)
|
|
|
{
|
|
|
+ IM_ASSERT(!Locked && "Cannot modify a locked ImFontAtlas between NewFrame() and EndFrame/Render()!");
|
|
|
ImFontConfig font_cfg = font_cfg_template ? *font_cfg_template : ImFontConfig();
|
|
|
IM_ASSERT(font_cfg.FontData == NULL);
|
|
|
font_cfg.FontData = ttf_data;
|
|
@@ -1660,6 +1668,7 @@ bool ImFontAtlas::GetMouseCursorTexData(ImGuiMouseCursor cursor_type, ImVec2* ou
|
|
|
|
|
|
bool ImFontAtlas::Build()
|
|
|
{
|
|
|
+ IM_ASSERT(!Locked && "Cannot modify a locked ImFontAtlas between NewFrame() and EndFrame/Render()!");
|
|
|
return ImFontAtlasBuildWithStbTruetype(this);
|
|
|
}
|
|
|
|