Hi @dmitry @madewokherd I need some advice from experts before I proceed with further work. By default, GDI+ adds a small amount of padding for non typographic. It is top 1/6 padding and 1/6 bottom padding of emSize. Non-Typographic format uses the 4/3 ratio to ensure vertical spacing and avoid clipping overhanging glyphs. Typographic format doesn't include any padding. This patch is causing massive test success: ``` graphics.c:3987: Test succeeded inside todo block: Expected 36.000000, got 35.760002 graphics.c:4004: Test succeeded inside todo block: Expected 36.000000, got 35.760002 graphics.c:4016: Test succeeded inside todo block: Expected 100.000000, got 99.333344 graphics.c:3987: Test succeeded inside todo block: Expected 18.000000, got 17.880001 graphics.c:4004: Test succeeded inside todo block: Expected 18.000000, got 17.879997 graphics.c:4016: Test succeeded inside todo block: Expected 100.000000, got 99.333321 graphics.c:3987: Test succeeded inside todo block: Expected 150.000000, got 149.000000 graphics.c:4004: Test succeeded inside todo block: Expected 150.000000, got 149.000000 graphics.c:4016: Test succeeded inside todo block: Expected 100.000000, got 99.333336 graphics.c:3987: Test succeeded inside todo block: Expected 75.000000, got 74.500000 graphics.c:4004: Test succeeded inside todo block: Expected 75.000000, got 74.500000 graphics.c:4016: Test succeeded inside todo block: Expected 100.000000, got 99.333336 graphics.c:3987: Test succeeded inside todo block: Expected 12.699999, got 12.615334 graphics.c:4004: Test succeeded inside todo block: Expected 12.699999, got 12.615334 graphics.c:4016: Test succeeded inside todo block: Expected 100.000000, got 99.333336 graphics.c:3987: Test succeeded inside todo block: Expected 6.349999, got 6.307667 graphics.c:4004: Test succeeded inside todo block: Expected 6.349999, got 6.307667 graphics.c:4016: Test succeeded inside todo block: Expected 100.000000, got 99.333336 graphics.c:3987: Test succeeded inside todo block: Expected 36.000000, got 35.760002 graphics.c:4004: Test succeeded inside todo block: Expected 36.000000, got 35.760002 graphics.c:4016: Test succeeded inside todo block: Expected 100.000000, got 99.333344 graphics.c:3987: Test succeeded inside todo block: Expected 18.000000, got 17.880001 graphics.c:4004: Test succeeded inside todo block: Expected 18.000000, got 17.879997 graphics.c:4016: Test succeeded inside todo block: Expected 100.000000, got 99.333321 graphics.c:3987: Test succeeded inside todo block: Expected 150.000000, got 149.000000 graphics.c:4004: Test succeeded inside todo block: Expected 150.000000, got 149.000000 graphics.c:4016: Test succeeded inside todo block: Expected 100.000000, got 99.333336 graphics.c:3987: Test succeeded inside todo block: Expected 75.000000, got 74.500000 graphics.c:4004: Test succeeded inside todo block: Expected 75.000000, got 74.500000 graphics.c:4016: Test succeeded inside todo block: Expected 100.000000, got 99.333336 graphics.c:3987: Test succeeded inside todo block: Expected 12.700000, got 12.615334 graphics.c:4004: Test succeeded inside todo block: Expected 12.700000, got 12.615334 graphics.c:4016: Test succeeded inside todo block: Expected 100.000000, got 99.333336 graphics.c:3987: Test succeeded inside todo block: Expected 6.350000, got 6.307667 graphics.c:4004: Test succeeded inside todo block: Expected 6.350000, got 6.307667 graphics.c:4016: Test succeeded inside todo block: Expected 100.000000, got 99.333336 graphics.c:3987: Test succeeded inside todo block: Expected 36.000000, got 35.760002 graphics.c:4004: Test succeeded inside todo block: Expected 36.000000, got 35.760002 graphics.c:4016: Test succeeded inside todo block: Expected 100.000000, got 99.333344 graphics.c:3987: Test succeeded inside todo block: Expected 18.000000, got 17.880001 graphics.c:4004: Test succeeded inside todo block: Expected 18.000000, got 17.879997 graphics.c:4016: Test succeeded inside todo block: Expected 100.000000, got 99.333321 graphics.c:3987: Test succeeded inside todo block: Expected 150.000000, got 149.000000 graphics.c:4004: Test succeeded inside todo block: Expected 150.000000, got 149.000000 graphics.c:4016: Test succeeded inside todo block: Expected 100.000000, got 99.333336 graphics.c:3987: Test succeeded inside todo block: Expected 75.000000, got 74.500000 graphics.c:4004: Test succeeded inside todo block: Expected 75.000000, got 74.500000 graphics.c:4016: Test succeeded inside todo block: Expected 100.000000, got 99.333336 graphics.c:3987: Test succeeded inside todo block: Expected 12.699999, got 12.615334 graphics.c:4004: Test succeeded inside todo block: Expected 12.699999, got 12.615334 graphics.c:4016: Test succeeded inside todo block: Expected 100.000000, got 99.333336 graphics.c:3987: Test succeeded inside todo block: Expected 6.349999, got 6.307667 graphics.c:4004: Test succeeded inside todo block: Expected 6.349999, got 6.307667 graphics.c:4016: Test succeeded inside todo block: Expected 100.000000, got 99.333336 graphics.c:3987: Test succeeded inside todo block: Expected 35.999996, got 35.760002 graphics.c:4004: Test succeeded inside todo block: Expected 35.999996, got 35.760002 graphics.c:4016: Test succeeded inside todo block: Expected 100.000000, got 99.333344 graphics.c:3987: Test succeeded inside todo block: Expected 17.999998, got 17.880001 graphics.c:4004: Test succeeded inside todo block: Expected 17.999998, got 17.879997 graphics.c:4016: Test succeeded inside todo block: Expected 100.000000, got 99.333321 graphics.c:3987: Test succeeded inside todo block: Expected 150.000000, got 149.000000 graphics.c:4004: Test succeeded inside todo block: Expected 150.000000, got 149.000000 graphics.c:4016: Test succeeded inside todo block: Expected 100.000000, got 99.333336 graphics.c:3987: Test succeeded inside todo block: Expected 75.000000, got 74.500000 graphics.c:4004: Test succeeded inside todo block: Expected 75.000000, got 74.500000 graphics.c:4016: Test succeeded inside todo block: Expected 100.000000, got 99.333336 graphics.c:3987: Test succeeded inside todo block: Expected 12.700000, got 12.615334 graphics.c:4004: Test succeeded inside todo block: Expected 12.700000, got 12.615334 graphics.c:4016: Test succeeded inside todo block: Expected 100.000000, got 99.333336 graphics.c:3987: Test succeeded inside todo block: Expected 6.350000, got 6.307667 graphics.c:4004: Test succeeded inside todo block: Expected 6.350000, got 6.307667 graphics.c:4016: Test succeeded inside todo block: Expected 100.000000, got 99.333336 ``` and one failure: ``` graphics.c:3444: Test failed: Expected 52.000000, got 50.000000 ``` I would need help with testing and reviewing it. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/10788