mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-10-31 21:21:06 +01:00 
			
		
		
		
	Removed ImFont::DisplayOffset in favor of ImFontConfig::GlyphOffset. (#1619)
+ Fonts: AddFontDefault() adjust its vertical offset based on floor(size/13) instead of always +1.
This commit is contained in:
		| @@ -1891,11 +1891,11 @@ ImFont* ImFontAtlas::AddFontDefault(const ImFontConfig* font_cfg_template) | ||||
|     if (font_cfg.Name[0] == '\0') | ||||
|         ImFormatString(font_cfg.Name, IM_ARRAYSIZE(font_cfg.Name), "ProggyClean.ttf, %dpx", (int)font_cfg.SizePixels); | ||||
|     font_cfg.EllipsisChar = (ImWchar)0x0085; | ||||
|     font_cfg.GlyphOffset.y = 1.0f * IM_FLOOR(font_cfg.SizePixels / 13.0f);  // Add +1 offset per 13 units | ||||
|  | ||||
|     const char* ttf_compressed_base85 = GetDefaultCompressedFontDataTTFBase85(); | ||||
|     const ImWchar* glyph_ranges = font_cfg.GlyphRanges != NULL ? font_cfg.GlyphRanges : GetGlyphRangesDefault(); | ||||
|     ImFont* font = AddFontFromMemoryCompressedBase85TTF(ttf_compressed_base85, font_cfg.SizePixels, &font_cfg, glyph_ranges); | ||||
|     font->DisplayOffset.y = 1.0f; | ||||
|     return font; | ||||
| } | ||||
|  | ||||
| @@ -2768,7 +2768,6 @@ ImFont::ImFont() | ||||
|     FallbackAdvanceX = 0.0f; | ||||
|     FallbackChar = (ImWchar)'?'; | ||||
|     EllipsisChar = (ImWchar)-1; | ||||
|     DisplayOffset = ImVec2(0.0f, 0.0f); | ||||
|     FallbackGlyph = NULL; | ||||
|     ContainerAtlas = NULL; | ||||
|     ConfigData = NULL; | ||||
| @@ -3163,8 +3162,8 @@ void ImFont::RenderChar(ImDrawList* draw_list, float size, ImVec2 pos, ImU32 col | ||||
|     if (!glyph || !glyph->Visible) | ||||
|         return; | ||||
|     float scale = (size >= 0.0f) ? (size / FontSize) : 1.0f; | ||||
|     pos.x = IM_FLOOR(pos.x + DisplayOffset.x); | ||||
|     pos.y = IM_FLOOR(pos.y + DisplayOffset.y); | ||||
|     pos.x = IM_FLOOR(pos.x); | ||||
|     pos.y = IM_FLOOR(pos.y); | ||||
|     draw_list->PrimReserve(6, 4); | ||||
|     draw_list->PrimRectUV(ImVec2(pos.x + glyph->X0 * scale, pos.y + glyph->Y0 * scale), ImVec2(pos.x + glyph->X1 * scale, pos.y + glyph->Y1 * scale), ImVec2(glyph->U0, glyph->V0), ImVec2(glyph->U1, glyph->V1), col); | ||||
| } | ||||
| @@ -3175,8 +3174,8 @@ void ImFont::RenderText(ImDrawList* draw_list, float size, ImVec2 pos, ImU32 col | ||||
|         text_end = text_begin + strlen(text_begin); // ImGui:: functions generally already provides a valid text_end, so this is merely to handle direct calls. | ||||
|  | ||||
|     // Align to be pixel perfect | ||||
|     pos.x = IM_FLOOR(pos.x + DisplayOffset.x); | ||||
|     pos.y = IM_FLOOR(pos.y + DisplayOffset.y); | ||||
|     pos.x = IM_FLOOR(pos.x); | ||||
|     pos.y = IM_FLOOR(pos.y); | ||||
|     float x = pos.x; | ||||
|     float y = pos.y; | ||||
|     if (y > clip_rect.w) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user