|
@@ -2027,6 +2027,19 @@ struct ImFontGlyphRangesBuilder
|
|
|
IMGUI_API void BuildRanges(ImVector<ImWchar>* out_ranges); // Output new ranges
|
|
|
};
|
|
|
|
|
|
+// See ImFontAtlas::AddCustomRectXXX functions.
|
|
|
+struct ImFontAtlasCustomRect
|
|
|
+{
|
|
|
+ unsigned int ID; // Input // User ID. Use <0x10000 to map into a font glyph, >=0x10000 for other/internal/custom texture data.
|
|
|
+ unsigned short Width, Height; // Input // Desired rectangle dimension
|
|
|
+ unsigned short X, Y; // Output // Packed position in Atlas
|
|
|
+ float GlyphAdvanceX; // Input // For custom font glyphs only (ID<0x10000): glyph xadvance
|
|
|
+ ImVec2 GlyphOffset; // Input // For custom font glyphs only (ID<0x10000): glyph display offset
|
|
|
+ ImFont* Font; // Input // For custom font glyphs only (ID<0x10000): target font
|
|
|
+ ImFontAtlasCustomRect() { ID = 0xFFFFFFFF; Width = Height = 0; X = Y = 0xFFFF; GlyphAdvanceX = 0.0f; GlyphOffset = ImVec2(0,0); Font = NULL; }
|
|
|
+ bool IsPacked() const { return X != 0xFFFF; }
|
|
|
+};
|
|
|
+
|
|
|
enum ImFontAtlasFlags_
|
|
|
{
|
|
|
ImFontAtlasFlags_None = 0,
|
|
@@ -2091,7 +2104,7 @@ struct ImFontAtlas
|
|
|
IMGUI_API const ImWchar* GetGlyphRangesChineseSimplifiedCommon();// Default + Half-Width + Japanese Hiragana/Katakana + set of 2500 CJK Unified Ideographs for common simplified Chinese
|
|
|
IMGUI_API const ImWchar* GetGlyphRangesCyrillic(); // Default + about 400 Cyrillic characters
|
|
|
IMGUI_API const ImWchar* GetGlyphRangesThai(); // Default + Thai characters
|
|
|
- IMGUI_API const ImWchar* GetGlyphRangesVietnamese(); // Default + Vietname characters
|
|
|
+ IMGUI_API const ImWchar* GetGlyphRangesVietnamese(); // Default + Vietnamese characters
|
|
|
|
|
|
//-------------------------------------------
|
|
|
// [BETA] Custom Rectangles/Glyphs API
|
|
@@ -2102,24 +2115,13 @@ struct ImFontAtlas
|
|
|
// You can also request your rectangles to be mapped as font glyph (given a font + Unicode point),
|
|
|
// so you can render e.g. custom colorful icons and use them as regular glyphs.
|
|
|
// Read misc/fonts/README.txt for more details about using colorful icons.
|
|
|
- struct CustomRect
|
|
|
- {
|
|
|
- unsigned int ID; // Input // User ID. Use <0x10000 to map into a font glyph, >=0x10000 for other/internal/custom texture data.
|
|
|
- unsigned short Width, Height; // Input // Desired rectangle dimension
|
|
|
- unsigned short X, Y; // Output // Packed position in Atlas
|
|
|
- float GlyphAdvanceX; // Input // For custom font glyphs only (ID<0x10000): glyph xadvance
|
|
|
- ImVec2 GlyphOffset; // Input // For custom font glyphs only (ID<0x10000): glyph display offset
|
|
|
- ImFont* Font; // Input // For custom font glyphs only (ID<0x10000): target font
|
|
|
- CustomRect() { ID = 0xFFFFFFFF; Width = Height = 0; X = Y = 0xFFFF; GlyphAdvanceX = 0.0f; GlyphOffset = ImVec2(0,0); Font = NULL; }
|
|
|
- bool IsPacked() const { return X != 0xFFFF; }
|
|
|
- };
|
|
|
- IMGUI_API int AddCustomRectRegular(unsigned int id, int width, int height); // Id needs to be >= 0x10000. Id >= 0x80000000 are reserved for ImGui and ImDrawList
|
|
|
- IMGUI_API int AddCustomRectFontGlyph(ImFont* font, ImWchar id, int width, int height, float advance_x, const ImVec2& offset = ImVec2(0,0)); // Id needs to be < 0x10000 to register a rectangle to map into a specific font.
|
|
|
- const CustomRect* GetCustomRectByIndex(int index) const { if (index < 0) return NULL; return &CustomRects[index]; }
|
|
|
+ IMGUI_API int AddCustomRectRegular(unsigned int id, int width, int height); // Id needs to be >= 0x10000. Id >= 0x80000000 are reserved for ImGui and ImDrawList
|
|
|
+ IMGUI_API int AddCustomRectFontGlyph(ImFont* font, ImWchar id, int width, int height, float advance_x, const ImVec2& offset = ImVec2(0,0)); // Id needs to be < 0x10000 to register a rectangle to map into a specific font.
|
|
|
+ const ImFontAtlasCustomRect*GetCustomRectByIndex(int index) const { if (index < 0) return NULL; return &CustomRects[index]; }
|
|
|
|
|
|
// [Internal]
|
|
|
- IMGUI_API void CalcCustomRectUV(const CustomRect* rect, ImVec2* out_uv_min, ImVec2* out_uv_max);
|
|
|
- IMGUI_API bool GetMouseCursorTexData(ImGuiMouseCursor cursor, ImVec2* out_offset, ImVec2* out_size, ImVec2 out_uv_border[2], ImVec2 out_uv_fill[2]);
|
|
|
+ IMGUI_API void CalcCustomRectUV(const ImFontAtlasCustomRect* rect, ImVec2* out_uv_min, ImVec2* out_uv_max);
|
|
|
+ IMGUI_API bool GetMouseCursorTexData(ImGuiMouseCursor cursor, ImVec2* out_offset, ImVec2* out_size, ImVec2 out_uv_border[2], ImVec2 out_uv_fill[2]);
|
|
|
|
|
|
//-------------------------------------------
|
|
|
// Members
|
|
@@ -2140,11 +2142,12 @@ struct ImFontAtlas
|
|
|
ImVec2 TexUvScale; // = (1.0f/TexWidth, 1.0f/TexHeight)
|
|
|
ImVec2 TexUvWhitePixel; // Texture coordinates to a white pixel
|
|
|
ImVector<ImFont*> Fonts; // Hold all the fonts returned by AddFont*. Fonts[0] is the default font upon calling ImGui::NewFrame(), use ImGui::PushFont()/PopFont() to change the current font.
|
|
|
- ImVector<CustomRect> CustomRects; // Rectangles for packing custom texture data into the atlas.
|
|
|
+ ImVector<ImFontAtlasCustomRect> CustomRects; // Rectangles for packing custom texture data into the atlas.
|
|
|
ImVector<ImFontConfig> ConfigData; // Internal data
|
|
|
int CustomRectIds[1]; // Identifiers of custom texture rectangle used by ImFontAtlas/ImDrawList
|
|
|
|
|
|
#ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS
|
|
|
+ typedef ImFontAtlasCustomRect CustomRect; // OBSOLETED in 1.72+
|
|
|
typedef ImFontGlyphRangesBuilder GlyphRangesBuilder; // OBSOLETED in 1.67+
|
|
|
#endif
|
|
|
};
|