mirror of
https://github.com/ocornut/imgui.git
synced 2024-11-24 05:19:02 +08:00
AddCustomRectFontGlyph: added storage for Colored bool in ImFontAtlasCustomRect. (#8133)
This commit is contained in:
parent
3b683927ee
commit
17bd417a3d
5
imgui.h
5
imgui.h
@ -3278,11 +3278,12 @@ struct ImFontAtlasCustomRect
|
|||||||
{
|
{
|
||||||
unsigned short Width, Height; // Input // Desired rectangle dimension
|
unsigned short Width, Height; // Input // Desired rectangle dimension
|
||||||
unsigned short X, Y; // Output // Packed position in Atlas
|
unsigned short X, Y; // Output // Packed position in Atlas
|
||||||
unsigned int GlyphID; // Input // For custom font glyphs only (ID < 0x110000)
|
unsigned int GlyphID : 31; // Input // For custom font glyphs only (ID < 0x110000)
|
||||||
|
unsigned int GlyphColored : 1; // Input // For custom font glyphs only: glyph is colored, removed tinting.
|
||||||
float GlyphAdvanceX; // Input // For custom font glyphs only: glyph xadvance
|
float GlyphAdvanceX; // Input // For custom font glyphs only: glyph xadvance
|
||||||
ImVec2 GlyphOffset; // Input // For custom font glyphs only: glyph display offset
|
ImVec2 GlyphOffset; // Input // For custom font glyphs only: glyph display offset
|
||||||
ImFont* Font; // Input // For custom font glyphs only: target font
|
ImFont* Font; // Input // For custom font glyphs only: target font
|
||||||
ImFontAtlasCustomRect() { Width = Height = 0; X = Y = 0xFFFF; GlyphID = 0; GlyphAdvanceX = 0.0f; GlyphOffset = ImVec2(0, 0); Font = NULL; }
|
ImFontAtlasCustomRect() { Width = Height = 0; X = Y = 0xFFFF; GlyphID = 0; GlyphColored = 0; GlyphAdvanceX = 0.0f; GlyphOffset = ImVec2(0, 0); Font = NULL; }
|
||||||
bool IsPacked() const { return X != 0xFFFF; }
|
bool IsPacked() const { return X != 0xFFFF; }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -2676,6 +2676,7 @@ int ImFontAtlas::AddCustomRectFontGlyph(ImFont* font, ImWchar id, int width, int
|
|||||||
r.Width = (unsigned short)width;
|
r.Width = (unsigned short)width;
|
||||||
r.Height = (unsigned short)height;
|
r.Height = (unsigned short)height;
|
||||||
r.GlyphID = id;
|
r.GlyphID = id;
|
||||||
|
r.GlyphColored = 0; // Set to 1 manually to mark glyph as colored // FIXME: No official API for that (#8133)
|
||||||
r.GlyphAdvanceX = advance_x;
|
r.GlyphAdvanceX = advance_x;
|
||||||
r.GlyphOffset = offset;
|
r.GlyphOffset = offset;
|
||||||
r.Font = font;
|
r.Font = font;
|
||||||
@ -3286,6 +3287,8 @@ void ImFontAtlasBuildFinish(ImFontAtlas* atlas)
|
|||||||
ImVec2 uv0, uv1;
|
ImVec2 uv0, uv1;
|
||||||
atlas->CalcCustomRectUV(r, &uv0, &uv1);
|
atlas->CalcCustomRectUV(r, &uv0, &uv1);
|
||||||
r->Font->AddGlyph(NULL, (ImWchar)r->GlyphID, r->GlyphOffset.x, r->GlyphOffset.y, r->GlyphOffset.x + r->Width, r->GlyphOffset.y + r->Height, uv0.x, uv0.y, uv1.x, uv1.y, r->GlyphAdvanceX);
|
r->Font->AddGlyph(NULL, (ImWchar)r->GlyphID, r->GlyphOffset.x, r->GlyphOffset.y, r->GlyphOffset.x + r->Width, r->GlyphOffset.y + r->Height, uv0.x, uv0.y, uv1.x, uv1.y, r->GlyphAdvanceX);
|
||||||
|
if (r->GlyphColored)
|
||||||
|
r->Font->Glyphs.back().Colored = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Build all fonts lookup tables
|
// Build all fonts lookup tables
|
||||||
|
Loading…
Reference in New Issue
Block a user