[Scummvm-git-logs] scummvm master -> d05d4df9e03703394ad84be3d94e661ce393d3a0
sev-
sev at scummvm.org
Wed Sep 23 21:44:38 UTC 2020
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
d05d4df9e0 GRAPHICS: Added support for stem darkening in TTF
Commit: d05d4df9e03703394ad84be3d94e661ce393d3a0
https://github.com/scummvm/scummvm/commit/d05d4df9e03703394ad84be3d94e661ce393d3a0
Author: PaweÅ KoÅodziejski (aquadran at users.sourceforge.net)
Date: 2020-09-23T23:44:35+02:00
Commit Message:
GRAPHICS: Added support for stem darkening in TTF
Changed paths:
graphics/fonts/ttf.cpp
graphics/fonts/ttf.h
diff --git a/graphics/fonts/ttf.cpp b/graphics/fonts/ttf.cpp
index 6628b6932c..c2c34957e9 100644
--- a/graphics/fonts/ttf.cpp
+++ b/graphics/fonts/ttf.cpp
@@ -71,6 +71,10 @@
#define FAKE_BOLD 0
#endif
+#if FREETYPE_MAJOR > 2 || ( FREETYPE_MAJOR == 2 && FREETYPE_MINOR >= 9)
+#include FT_TRUETYPE_DRIVER_H
+#endif
+
namespace Graphics {
namespace {
@@ -138,9 +142,9 @@ public:
virtual ~TTFFont();
bool load(Common::SeekableReadStream &stream, int size, TTFSizeMode sizeMode,
- uint dpi, TTFRenderMode renderMode, const uint32 *mapping);
+ uint dpi, TTFRenderMode renderMode, const uint32 *mapping, bool stemDarkening);
bool load(uint8 *ttfFile, uint32 sizeFile, int32 faceIndex, bool fakeBold, bool fakeItalic,
- int size, TTFSizeMode sizeMode, uint dpi, TTFRenderMode renderMode, const uint32 *mapping);
+ int size, TTFSizeMode sizeMode, uint dpi, TTFRenderMode renderMode, const uint32 *mapping, bool stemDarkening);
virtual int getFontHeight() const;
@@ -211,7 +215,7 @@ TTFFont::~TTFFont() {
}
bool TTFFont::load(Common::SeekableReadStream &stream, int size, TTFSizeMode sizeMode,
- uint dpi, TTFRenderMode renderMode, const uint32 *mapping) {
+ uint dpi, TTFRenderMode renderMode, const uint32 *mapping, bool stemDarkening) {
if (!g_ttf.isInitialized())
return false;
@@ -227,7 +231,7 @@ bool TTFFont::load(Common::SeekableReadStream &stream, int size, TTFSizeMode siz
return false;
}
- if (!load(ttfFile, sizeFile, 0, false, false, size, sizeMode, dpi, renderMode, mapping)) {
+ if (!load(ttfFile, sizeFile, 0, false, false, size, sizeMode, dpi, renderMode, mapping, stemDarkening)) {
delete[] ttfFile;
return false;
}
@@ -237,7 +241,7 @@ bool TTFFont::load(Common::SeekableReadStream &stream, int size, TTFSizeMode siz
}
bool TTFFont::load(uint8 *ttfFile, uint32 sizeFile, int32 faceIndex, bool bold, bool italic,
- int size, TTFSizeMode sizeMode, uint dpi, TTFRenderMode renderMode, const uint32 *mapping) {
+ int size, TTFSizeMode sizeMode, uint dpi, TTFRenderMode renderMode, const uint32 *mapping, bool stemDarkening) {
_initialized = false;
if (!g_ttf.isInitialized())
@@ -266,6 +270,16 @@ bool TTFFont::load(uint8 *ttfFile, uint32 sizeFile, int32 faceIndex, bool bold,
return false;
}
+ if (stemDarkening) {
+#if FREETYPE_MAJOR > 2 || ( FREETYPE_MAJOR == 2 && FREETYPE_MINOR >= 9)
+ FT_Parameter param;
+ param.tag = FT_PARAM_TAG_STEM_DARKENING;
+ param.data = &stemDarkening;
+ FT_Face_Properties(_face, 1, ¶m);
+#else
+ warning("Stem darkening is not available with this version of FreeType");
+#endif
+ }
// Check whether we have kerning support
_hasKerning = (FT_HAS_KERNING(_face) != 0);
@@ -808,10 +822,10 @@ void TTFFont::assureCached(uint32 chr) const {
}
}
-Font *loadTTFFont(Common::SeekableReadStream &stream, int size, TTFSizeMode sizeMode, uint dpi, TTFRenderMode renderMode, const uint32 *mapping) {
+Font *loadTTFFont(Common::SeekableReadStream &stream, int size, TTFSizeMode sizeMode, uint dpi, TTFRenderMode renderMode, const uint32 *mapping, bool stemDarkening) {
TTFFont *font = new TTFFont();
- if (!font->load(stream, size, sizeMode, dpi, renderMode, mapping)) {
+ if (!font->load(stream, size, sizeMode, dpi, renderMode, mapping, stemDarkening)) {
delete font;
return 0;
}
@@ -1000,7 +1014,7 @@ Font *findTTFace(const Common::Array<Common::String> &files, const Common::U32St
}
if (!font->load(bestTTFFile, bestSize, bestFaceId, bold, italic, size, sizeMode,
- dpi, renderMode, mapping)) {
+ dpi, renderMode, mapping, false)) {
delete font;
delete [] bestTTFFile;
return nullptr;
diff --git a/graphics/fonts/ttf.h b/graphics/fonts/ttf.h
index 712ac18865..9733dfba7f 100644
--- a/graphics/fonts/ttf.h
+++ b/graphics/fonts/ttf.h
@@ -95,7 +95,7 @@ enum TTFSizeMode {
* supported.
* @return 0 in case loading fails, otherwise a pointer to the Font object.
*/
-Font *loadTTFFont(Common::SeekableReadStream &stream, int size, TTFSizeMode sizeMode = kTTFSizeModeCharacter, uint dpi = 0, TTFRenderMode renderMode = kTTFRenderModeLight, const uint32 *mapping = 0);
+Font *loadTTFFont(Common::SeekableReadStream &stream, int size, TTFSizeMode sizeMode = kTTFSizeModeCharacter, uint dpi = 0, TTFRenderMode renderMode = kTTFRenderModeLight, const uint32 *mapping = 0, bool stemDarkening = false);
/**
* Loads a TTF font file from the common fonts archive.
More information about the Scummvm-git-logs
mailing list