From 0abff326f91a5ced171e0fc85847a2ea3d807edc Mon Sep 17 00:00:00 2001 From: Labrium <76017200+Labrium@users.noreply.github.com> Date: Fri, 1 Sep 2023 15:33:28 -0600 Subject: [PATCH] Add SDF HintingMode --- src/modules/font/TrueTypeRasterizer.cpp | 1 + src/modules/font/TrueTypeRasterizer.h | 1 + src/modules/font/freetype/TrueTypeRasterizer.cpp | 4 ++++ 3 files changed, 6 insertions(+) diff --git a/src/modules/font/TrueTypeRasterizer.cpp b/src/modules/font/TrueTypeRasterizer.cpp index eb9a1740d..cd4b6f087 100644 --- a/src/modules/font/TrueTypeRasterizer.cpp +++ b/src/modules/font/TrueTypeRasterizer.cpp @@ -46,6 +46,7 @@ StringMap::En {"light", HINTING_LIGHT}, {"mono", HINTING_MONO}, {"none", HINTING_NONE}, + {"sdf", HINTING_SDF}, }; StringMap TrueTypeRasterizer::hintings(TrueTypeRasterizer::hintingEntries, sizeof(TrueTypeRasterizer::hintingEntries)); diff --git a/src/modules/font/TrueTypeRasterizer.h b/src/modules/font/TrueTypeRasterizer.h index 62b225927..51ea65c8a 100644 --- a/src/modules/font/TrueTypeRasterizer.h +++ b/src/modules/font/TrueTypeRasterizer.h @@ -41,6 +41,7 @@ public: HINTING_LIGHT, HINTING_MONO, HINTING_NONE, + HINTING_SDF, HINTING_MAX_ENUM }; diff --git a/src/modules/font/freetype/TrueTypeRasterizer.cpp b/src/modules/font/freetype/TrueTypeRasterizer.cpp index e70367f5d..bb9ff8047 100644 --- a/src/modules/font/freetype/TrueTypeRasterizer.cpp +++ b/src/modules/font/freetype/TrueTypeRasterizer.cpp @@ -97,6 +97,8 @@ GlyphData *TrueTypeRasterizer::getGlyphData(uint32 glyph) const FT_Render_Mode rendermode = FT_RENDER_MODE_NORMAL; if (hinting == HINTING_MONO) rendermode = FT_RENDER_MODE_MONO; + else if (hinting == HINTING_SDF) + rendermode = FT_RENDER_MODE_SDF; err = FT_Glyph_To_Bitmap(&ftglyph, rendermode, 0, 1); @@ -206,6 +208,8 @@ FT_UInt TrueTypeRasterizer::hintingToLoadOption(Hinting hint) return FT_LOAD_TARGET_LIGHT; case HINTING_MONO: return FT_LOAD_TARGET_MONO; + case HINTING_SDF: + return FT_LOAD_RENDER; case HINTING_NONE: return FT_LOAD_NO_HINTING; }