Andrew Sampson
e5a478cdd8
undo: textAlignment
2025-08-15 20:58:30 +09:00
andrewmd5
2b46565a2e
fix: text measurement/rendering width mismatch in sokol_clay
...
The text bounding box width was incorrect because the measurement function
was using logical pixels while the rendering function was using physical
pixels (scaled by DPI). This caused a mismatch where:
- sclay_measure_text() set font size and letter spacing without DPI scaling
- sclay_render() applied DPI scaling to both font size and letter spacing
- fontstash's fonsTextBounds() returned physical pixel measurements even
when given logical pixel sizes, leading to incorrect width calculations
The fix ensures consistent DPI scaling by:
1. Scaling font size and letter spacing by dpi_scale during measurement
2. Dividing the returned bounds by dpi_scale to convert back to logical pixels
3. This ensures Clay receives measurements in logical pixels that match what
will actually be rendered
This was particularly noticeable with long continuous text where the
discrepancy accumulated across many characters. The issue was font-size
dependent because different font sizes have different rounding behaviors
in the underlying font rendering system.
Also adds text alignment support to properly measure and render centered/right-aligned text.
2025-08-08 17:55:32 +09:00
github-actions[bot]
91c6d05774
[bindings/odin] Update Odin bindings
2025-07-15 23:32:23 +00:00
Nic Barker
4aa3d75bef
[Core] Split base ID hash from index ID hash
2025-07-16 09:30:54 +10:00
Hayden Gray
9d38edb989
[Bindings/Odin] SizingFit and SizingGrow default parameters ( #462 )
2025-07-09 09:07:10 +10:00
github-actions[bot]
516e85bdfe
[bindings/odin] Update Odin bindings
2025-07-01 23:47:56 +00:00
Tomás Ralph
0022d12c0c
[DebugTools] Fix aspect ratio display, closes #449 ( #451 )
2025-07-02 09:46:12 +10:00
Nic Barker
d9d0b6c37b
[Core] Fix incorrect percentage sizing of floating elements
2025-07-02 09:37:38 +10:00
Hayden Gray
8dfcc944fa
[Bindings/Odin] - add CI to update binding libs ( #452 )
2025-06-27 15:05:13 +10:00
Mivirl
a9c1f9a8a7
[Renderers/termbox2] Termbox2 renderer & examples ( #419 )
2025-06-27 08:26:38 +10:00
Nic Barker
281f961e3d
[Bindings/Odin] Update Odin bindings
2025-06-24 13:57:15 +10:00
Nic Barker
3433a53a8e
[Core] Fix an alignment bug for scrolling container contents
2025-06-24 13:55:20 +10:00
wolfee
4a91cac1b2
[Renderers/SDL3] Fix border position calculated incorrectly ( #446 )
2025-06-23 10:43:08 +10:00
Nic Barker
ff7917798c
[Core] Avoid calling measure text function with length zero
2025-06-23 10:10:13 +10:00
wolfee
f97cb9ea10
[Renderers/SDL] Font sizing is ignored ( #444 )
2025-06-23 09:30:14 +10:00
Nic Barker
74f0ffbe26
[Renderers/Cairo] Fix outdated image API usage in cairo example
2025-06-23 09:16:41 +10:00
Nic Barker
a5e212b8de
[Renderers/HTML] Fix a mouse overlap bug with external scroll handling
2025-06-20 10:59:44 +10:00
Nic Barker
0835781602
[Bindings/Odin] Update Odin Bindings
2025-06-18 09:55:32 +10:00
Nic Barker
13ecd80ee5
[Renderers/SDL3] Fix up outdated API usage in SDL3 example
2025-06-18 09:54:27 +10:00
Nic Barker
c524485c46
[Core] Fix case where there could be 64 extra bytes of padding between arrays in clays internal arena
2025-06-17 13:07:56 +10:00
Nic Barker
b9e27178c0
[Core] Align base arena memory to 64 byte cache line
2025-06-17 10:32:30 +10:00
Nic Barker
6f10bf4b3d
[Core] Remove erroneous break statement when using external scroll handling
2025-06-13 10:35:31 +10:00
Nic Barker
adb1bd620a
[Examples/clay-official-website] Fix links on official website example
2025-06-13 09:59:07 +10:00
Nic Barker
dca9f60a6c
[Core] Add objective-c support
2025-06-12 12:16:29 +10:00
Nic Barker
3ccfa0f8fa
[Core] Fix a bug where extra child gap was added to the dimensions of clipped containers
2025-06-11 10:41:01 +10:00
Nic Barker
35b45d939b
Fix some typos in the readme
2025-06-11 10:15:51 +10:00
Nic Barker
6b03a215b7
[Core] Fix an out of bounds access for single newline characters
2025-06-10 11:38:56 +10:00
Nic Barker
b25a31c1a1
[Bindings/Odin] Update Odin Bindings to latest
2025-06-06 11:01:42 +10:00
Nic Barker
8bbe14fbcc
[Documentation] Fix README typo, bump version number to 0.14
2025-06-06 10:20:37 +10:00
Alan
58491394ca
[Renderers/Raylib] Fix element float distortion ( #430 )
2025-06-05 10:49:26 +10:00
Nic Barker
87575cb7c3
[Core] Fix handling of letter spacing
2025-06-05 10:38:53 +10:00
Nic Barker
80659eda04
[Renderers/Web] Fix clay official website example struct definitions for web renderers
2025-06-04 10:50:35 +10:00
Rats
a3003cfa12
[Bindings/Odin] Update README to better match official website example. ( #422 )
2025-06-02 20:26:04 +10:00
Wes Lord
5eceb52abc
Set CMake FetchContent GIT_TAG for SDL_ttf ( #423 )
2025-06-02 13:00:45 +10:00
Michael Tanner
149833bdc0
[Core] Fix dimension calculation that would always result in 0 ( #428 )
2025-06-02 12:27:28 +10:00
Nic Barker
0431f862f4
[Core] Improve handling of aspect ratio scaling
2025-06-02 12:14:09 +10:00
Nic Barker
d6f3957a60
[Core] Split aspect ratio scaling into its own config ( #426 )
2025-06-02 10:36:58 +10:00
Boreal
89ce22e894
[Core] Fix sign comparison warning ( #427 )
2025-05-29 13:10:05 +10:00
Wes Lord
e80736892d
[Renderers/SDL2] Indent SDL2's CMakeLists.txt consistently ( #424 )
2025-05-28 09:50:00 +10:00
Nic Barker
ce2475ba73
[Compilers] Add missing struct name for image element config
2025-05-26 10:10:24 +10:00
Johann Muszynski
34ff7e1bea
[Compilers] Add struct names to public structs ( #336 )
2025-05-26 10:03:07 +10:00
Emmanuel
65e813d4df
[Renderers/Terminal] Add initial implementation of terminal renderer ( #91 )
2025-05-22 12:45:52 +12:00
Nic Barker
7af50d0f48
[Bindings/Odin] Update odin bindings to include floating element clipTo
2025-05-20 11:40:25 +12:00
Matt Jennings
e2f94f17f6
[Renderers/Playdate] Playdate console example ( #404 )
2025-05-19 11:46:39 +12:00
Zordan
eb1d85f2a6
[Renderers/Cairo] Fix cairo renderer and example ( #416 )
2025-05-19 11:36:08 +12:00
Patricio Whittingslow
76351a0999
[Documentation] Add Go rewrites of clay to README ( #411 )
2025-05-19 11:33:38 +12:00
Simon Oelerich
efbd680685
[Core] restore compatibility with C99 ( #412 )
2025-05-14 13:29:12 +12:00
Patrick Doane
b656dc5253
[Core] Add Clay_FloatingClipToElement ( #413 )
2025-05-14 13:24:42 +12:00
João Matos
b78fd66da8
[Core] Add Clay_GetPointerOverIds
function to the public API. ( #389 )
2025-05-14 12:39:56 +12:00
Jeroen van Rijn
76265e4c3c
[Bindings/Odin] Add missing border macros to Odin bindings
2025-05-09 13:25:34 +12:00