mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-10-31 05:01:05 +01:00 
			
		
		
		
	Fonts: minor/shallow amends (#6925)
This commit is contained in:
		| @@ -201,6 +201,12 @@ Other changes: | |||||||
|   - Better assert during load when passing truncated font data or wrong data size. (#6822) |   - Better assert during load when passing truncated font data or wrong data size. (#6822) | ||||||
|   - Ensure calling AddFontXXX function doesn't invalidates ImFont's ConfigData pointers |   - Ensure calling AddFontXXX function doesn't invalidates ImFont's ConfigData pointers | ||||||
|     prior to building again. (#6825) |     prior to building again. (#6825) | ||||||
|  |   - Added ImFontConfig::RasterizerDensity field to increase texture size of rendered glyphs | ||||||
|  |     without altering other metrics. Among other things, this makes it easier to have zooming code | ||||||
|  |     swapping between 2 fonts (e.g. a 100% and a 400% fonts) depending on current scale. (#6925) [@thedmd] | ||||||
|  |     Important: if you increase this it is expected that you would render the font with a scale of | ||||||
|  |     similar value or magnitude. Merely increasing this without increasing scale may lower quality. | ||||||
|  |   - imgui_freetype: Added support for RasterizerDensity. (#6925) [@thedmd] | ||||||
|   - imgui_freetype: Fixed a warning and leak in IMGUI_ENABLE_FREETYPE_LUNASVG support. (#6842, #6591) |   - imgui_freetype: Fixed a warning and leak in IMGUI_ENABLE_FREETYPE_LUNASVG support. (#6842, #6591) | ||||||
| - Inputs: Added IsKeyChordPressed() helper function e.g. IsKeyChordPressed(ImGuiMod_Ctrl | ImGuiKey_S). | - Inputs: Added IsKeyChordPressed() helper function e.g. IsKeyChordPressed(ImGuiMod_Ctrl | ImGuiKey_S). | ||||||
|   (note that ImGuiMod_Shortcut may be used as an alias for Cmd on OSX and Ctrl on other systems). |   (note that ImGuiMod_Shortcut may be used as an alias for Cmd on OSX and Ctrl on other systems). | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								imgui.h
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								imgui.h
									
									
									
									
									
								
							| @@ -2848,8 +2848,8 @@ struct ImFontConfig | |||||||
|     float           GlyphMaxAdvanceX;       // FLT_MAX  // Maximum AdvanceX for glyphs |     float           GlyphMaxAdvanceX;       // FLT_MAX  // Maximum AdvanceX for glyphs | ||||||
|     bool            MergeMode;              // false    // Merge into previous ImFont, so you can combine multiple inputs font into one ImFont (e.g. ASCII font + icons + Japanese glyphs). You may want to use GlyphOffset.y when merge font of different heights. |     bool            MergeMode;              // false    // Merge into previous ImFont, so you can combine multiple inputs font into one ImFont (e.g. ASCII font + icons + Japanese glyphs). You may want to use GlyphOffset.y when merge font of different heights. | ||||||
|     unsigned int    FontBuilderFlags;       // 0        // Settings for custom font builder. THIS IS BUILDER IMPLEMENTATION DEPENDENT. Leave as zero if unsure. |     unsigned int    FontBuilderFlags;       // 0        // Settings for custom font builder. THIS IS BUILDER IMPLEMENTATION DEPENDENT. Leave as zero if unsure. | ||||||
|     float           RasterizerMultiply;     // 1.0f     // Brighten (>1.0f) or darken (<1.0f) font output. Brightening small fonts may be a good workaround to make them more readable. |     float           RasterizerMultiply;     // 1.0f     // Linearly brighten (>1.0f) or darken (<1.0f) font output. Brightening small fonts may be a good workaround to make them more readable. This is a silly thing we may remove in the future. | ||||||
|     float           RasterizerDensity;      // 1.0f     // DPI scale for rasterization. Bigger DPI for higher quality. |     float           RasterizerDensity;      // 1.0f     // DPI scale for rasterization, not altering other font metrics: make it easy to swap between e.g. a 100% and a 400% fonts for a zooming display. IMPORTANT: If you increase this it is expected that you increase font scale accordingly, otherwise quality may look lowered. | ||||||
|     ImWchar         EllipsisChar;           // -1       // Explicitly specify unicode codepoint of ellipsis character. When fonts are being merged first specified ellipsis will be used. |     ImWchar         EllipsisChar;           // -1       // Explicitly specify unicode codepoint of ellipsis character. When fonts are being merged first specified ellipsis will be used. | ||||||
|  |  | ||||||
|     // [Internal] |     // [Internal] | ||||||
|   | |||||||
| @@ -2576,7 +2576,7 @@ static bool ImFontAtlasBuildWithStbTruetype(ImFontAtlas* atlas) | |||||||
|         src_tmp.PackRange.v_oversample = (unsigned char)cfg.OversampleV; |         src_tmp.PackRange.v_oversample = (unsigned char)cfg.OversampleV; | ||||||
|  |  | ||||||
|         // Gather the sizes of all rectangles we will need to pack (this loop is based on stbtt_PackFontRangesGatherRects) |         // Gather the sizes of all rectangles we will need to pack (this loop is based on stbtt_PackFontRangesGatherRects) | ||||||
|         const float scale = (cfg.SizePixels > 0) ? stbtt_ScaleForPixelHeight(&src_tmp.FontInfo, cfg.SizePixels * cfg.RasterizerDensity) : stbtt_ScaleForMappingEmToPixels(&src_tmp.FontInfo, -cfg.SizePixels * cfg.RasterizerDensity); |         const float scale = (cfg.SizePixels > 0.0f) ? stbtt_ScaleForPixelHeight(&src_tmp.FontInfo, cfg.SizePixels * cfg.RasterizerDensity) : stbtt_ScaleForMappingEmToPixels(&src_tmp.FontInfo, -cfg.SizePixels * cfg.RasterizerDensity); | ||||||
|         const int padding = atlas->TexGlyphPadding; |         const int padding = atlas->TexGlyphPadding; | ||||||
|         for (int glyph_i = 0; glyph_i < src_tmp.GlyphsList.Size; glyph_i++) |         for (int glyph_i = 0; glyph_i < src_tmp.GlyphsList.Size; glyph_i++) | ||||||
|         { |         { | ||||||
|   | |||||||
| @@ -6,6 +6,7 @@ | |||||||
|  |  | ||||||
| // CHANGELOG | // CHANGELOG | ||||||
| // (minor and older changes stripped away, please see git history for details) | // (minor and older changes stripped away, please see git history for details) | ||||||
|  | //  2023/11/13: added support for ImFontConfig::RasterizationDensity field for scaling render density without scaling metrics. | ||||||
| //  2023/08/01: added support for SVG fonts, enable by using '#define IMGUI_ENABLE_FREETYPE_LUNASVG' (#6591) | //  2023/08/01: added support for SVG fonts, enable by using '#define IMGUI_ENABLE_FREETYPE_LUNASVG' (#6591) | ||||||
| //  2023/01/04: fixed a packing issue which in some occurrences would prevent large amount of glyphs from being packed correctly. | //  2023/01/04: fixed a packing issue which in some occurrences would prevent large amount of glyphs from being packed correctly. | ||||||
| //  2021/08/23: fixed crash when FT_Render_Glyph() fails to render a glyph and returns NULL. | //  2021/08/23: fixed crash when FT_Render_Glyph() fails to render a glyph and returns NULL. | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user