mirror of
https://github.com/ocornut/imgui.git
synced 2024-12-01 02:37:24 +01:00
Fonts: Fixed CalcTextSize() width rounding so it behaves more like a ceil. (#3776)
his is in order for text wrapping to have enough space when provided width precisely calculated with CalcTextSize().x. Amend 7b0bf230
.
Note that the rounding of either positions and widths are technically undesirable (e.g. #3437, #791) but variety of code is currently on it so we are first fixing current behavior before we'll eventually change it.
This commit is contained in:
parent
9499afdf5e
commit
4622fa4b66
@ -53,6 +53,10 @@ Other Changes:
|
|||||||
other than compiling misc/freetype/imgui_freetype.cpp and linking with FreeType.
|
other than compiling misc/freetype/imgui_freetype.cpp and linking with FreeType.
|
||||||
- Use '#define IMGUI_ENABLE_STB_TRUETYPE' if you somehow need the stb_truetype rasterizer to be
|
- Use '#define IMGUI_ENABLE_STB_TRUETYPE' if you somehow need the stb_truetype rasterizer to be
|
||||||
compiled in along with the FreeType one, otherwise it is enabled by default.
|
compiled in along with the FreeType one, otherwise it is enabled by default.
|
||||||
|
- Fonts: Fixed CalcTextSize() width rounding so it behaves more like a ceil. This is in order for text wrapping
|
||||||
|
to have enough space when provided width precisely calculated with CalcTextSize().x. (#3776)
|
||||||
|
Note that the rounding of either positions and widths are technically undesirable (e.g. #3437, #791) but
|
||||||
|
variety of code is currently on it so we are first fixing current behavior before we'll eventually chhnge it.
|
||||||
- ImDrawList: Fixed AddCircle()/AddCircleFilled() with (rad > 0.0f && rad < 1.0f && num_segments == 0). (#3738)
|
- ImDrawList: Fixed AddCircle()/AddCircleFilled() with (rad > 0.0f && rad < 1.0f && num_segments == 0). (#3738)
|
||||||
Would lead to a buffer read overflow.
|
Would lead to a buffer read overflow.
|
||||||
- Backends: Win32: Dynamically loading XInput DLL instead of linking with it, facilite compiling with
|
- Backends: Win32: Dynamically loading XInput DLL instead of linking with it, facilite compiling with
|
||||||
|
@ -4410,7 +4410,11 @@ ImVec2 ImGui::CalcTextSize(const char* text, const char* text_end, bool hide_tex
|
|||||||
ImVec2 text_size = font->CalcTextSizeA(font_size, FLT_MAX, wrap_width, text, text_display_end, NULL);
|
ImVec2 text_size = font->CalcTextSizeA(font_size, FLT_MAX, wrap_width, text, text_display_end, NULL);
|
||||||
|
|
||||||
// Round
|
// Round
|
||||||
text_size.x = IM_FLOOR(text_size.x + 0.95f);
|
// FIXME: This has been here since Dec 2015 (7b0bf230) but down the line we want this out.
|
||||||
|
// FIXME: Investigate using ceilf or e.g.
|
||||||
|
// - https://git.musl-libc.org/cgit/musl/tree/src/math/ceilf.c
|
||||||
|
// - https://embarkstudios.github.io/rust-gpu/api/src/libm/math/ceilf.rs.html
|
||||||
|
text_size.x = IM_FLOOR(text_size.x + 0.99999f);
|
||||||
|
|
||||||
return text_size;
|
return text_size;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user