Commit Graph

15 Commits

Author SHA1 Message Date
WerWolv
d920718b44 build: Refactor ImHexAPI into multiple separate files 2025-08-14 20:16:40 +02:00
WerWolv
c30830a8ff impr: Added Tabler Icons font 2025-08-09 17:55:39 +02:00
WerWolv
0e855e10db fix: Slightly adjust icon positions again 2025-07-31 20:54:56 +02:00
WerWolv
fd8bdbdc90 fix: Icons being too big for regular text 2025-07-31 20:32:59 +02:00
WerWolv
46b13b6606 impr: Nicer font registering API 2025-07-28 18:02:33 +02:00
WerWolv
c1545b57c9 impr: Cleanup font loading API, fix CJK glyphs being rendered way too large 2025-07-25 23:06:44 +02:00
WerWolv
de62a4c71e impr: Better icon centering in icon buttons 2025-07-17 20:12:38 +02:00
Nik
d1840a2184 build: Update ImGui to v1.92.1 (#2325)
Update ImGui to the latest version and rewrite most of the font handling
code
2025-07-10 10:00:39 +02:00
paxcut
5c4cf7379f feat: Added Subpixel Font rendering (#2092)
Proof of concept for implementing subpixel processing in ImGui. This is
work in progress, and it is bound to have problems.

What it does:
1) Uses freetype own subpixel processing implementation to build a
32-bit color atlas for the default font only (no icons, no unifont) . 2)
Avoids pixel perfect font conversion when possible. 3) Self contained,
no ImGui source code changes.
4) Results in much improved legibility of fonts rendered on low dpi LCD
screens that use horizontal RGB pixel layouts (no BRG or OLED or CRT if
they even exist anymore)

What it doesn't:
1) Fancy class based interface. The code is barely the minimum needed to
show it can work. 2) Dual source color blending. That needs to be
implemented in shader code, so it needs to change ImGui source code
although minimally. This will result in some characters appearing dimmer
than others. Easily fixed with small fragment and vertex shaders. 3)
subpixel positioning. If characters are very thin they will look
colored, or they can be moved to improve legibility. 4) deal with
detection of fringe cases including rare pixel layouts, non LCD screens,
Mac-OS not handling subpixel rendering and any other deviation from the
standard LCD. 5) tries to be efficient in speed or memory use. Font
Atlases will be 4 times the size they were before, but there are no
noticeable delays in font loading in the examples I have tried.

Any comments and code improvements are welcome.

---------

Co-authored-by: Nik <werwolv98@gmail.com>
2025-05-11 15:36:32 +02:00
WerWolv
89090b25e3 impr: Various shortcut improvements 2024-12-15 21:44:43 +01:00
WerWolv
6a28de100c impr: Rename font definition files 2024-12-14 20:36:09 +01:00
WerWolv
f49715c7a0 impr: Better font loading logic 2024-06-16 22:41:16 +02:00
WerWolv
8030de7af2 fix: Icons not being fractionally scaled anymore 2024-03-28 22:15:30 +01:00
WerWolv
61b9c0970b impr: Load unifont at correct size
Fixes #1604
2024-03-21 21:27:50 +01:00
Nik
339541a56f impr: Restructure various components much better (#1520) 2024-01-28 22:14:59 +01:00