diff options
Diffstat (limited to 'devel/electron13/files/patch-freetype-2.11.0')
-rw-r--r-- | devel/electron13/files/patch-freetype-2.11.0 | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/devel/electron13/files/patch-freetype-2.11.0 b/devel/electron13/files/patch-freetype-2.11.0 new file mode 100644 index 000000000000..9d1ff0b2808e --- /dev/null +++ b/devel/electron13/files/patch-freetype-2.11.0 @@ -0,0 +1,50 @@ +--- third_party/skia/src/ports/SkFontHost_FreeType_common.cpp.orig 2021-07-15 19:15:52 UTC ++++ third_party/skia/src/ports/SkFontHost_FreeType_common.cpp +@@ -665,12 +665,21 @@ void colrv1_draw_paint(SkCanvas* canvas, + canvas->drawPaint(paint); + break; + } +- case FT_COLR_PAINTFORMAT_TRANSFORMED: { ++#if FREETYPE_MAJOR == 2 && FREETYPE_MINOR >= 11 ++ case FT_COLR_PAINTFORMAT_TRANSFORM: { ++ SkMatrix transform = ToSkMatrix(colrv1_paint.u.transform.affine); ++ ++ canvas->concat(transform); ++ break; ++ } ++#else ++ case FT_COLR_PAINTFORMAT_TRANSFORMED: { + SkMatrix transform = ToSkMatrix(colrv1_paint.u.transformed.affine); + + canvas->concat(transform); + break; + } ++#endif + case FT_COLR_PAINTFORMAT_TRANSLATE: { + SkMatrix translate = SkMatrix::Translate( + SkFixedToScalar(colrv1_paint.u.translate.dx), +@@ -768,6 +777,16 @@ bool colrv1_traverse_paint(SkCanvas* canvas, + traverse_result = colrv1_start_glyph(canvas, palette, face, paint.u.colr_glyph.glyphID, + FT_COLOR_NO_ROOT_TRANSFORM); + break; ++#if FREETYPE_MAJOR == 2 && FREETYPE_MINOR >= 11 ++ case FT_COLR_PAINTFORMAT_TRANSFORM: ++ canvas->saveLayer(nullptr, nullptr); ++ // Traverse / draw operation will apply transform. ++ colrv1_draw_paint(canvas, palette, face, paint); ++ traverse_result = ++ colrv1_traverse_paint(canvas, palette, face, paint.u.transform.paint); ++ canvas->restore(); ++ break; ++#else + case FT_COLR_PAINTFORMAT_TRANSFORMED: + canvas->saveLayer(nullptr, nullptr); + // Traverse / draw operation will apply transform. +@@ -776,6 +795,7 @@ bool colrv1_traverse_paint(SkCanvas* canvas, + colrv1_traverse_paint(canvas, palette, face, paint.u.transformed.paint); + canvas->restore(); + break; ++#endif + case FT_COLR_PAINTFORMAT_TRANSLATE: + canvas->saveLayer(nullptr, nullptr); + // Traverse / draw operation will apply transform. |