From 4f593f694d8177f8d822f4b85899b9cdea2bdc51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20R=C3=B6ttsches?= Date: Wed, 23 Jun 2021 15:08:04 +0300 Subject: [Backport] Gate breaking FreeType change in COLRv1 struct names Manual edit of an original change in order to allow build with latest freetype release 2.11.0 without separate roll commit. Subsequent change removes support to build with non-latest freetype completely, so save it Bug: chromium:1223001 Change-Id: I969d86e5678961c3daad7995e1fe8dd9b976f077 Reviewed-by: Michal Klocek --- .../skia/src/ports/SkFontHost_FreeType_common.cpp | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/chromium/third_party/skia/src/ports/SkFontHost_FreeType_common.cpp b/chromium/third_party/skia/src/ports/SkFontHost_FreeType_common.cpp index 3b28b442fea..4b0ab303709 100644 --- a/chromium/third_party/skia/src/ports/SkFontHost_FreeType_common.cpp +++ b/chromium/third_party/skia/src/ports/SkFontHost_FreeType_common.cpp @@ -64,6 +64,8 @@ bool operator==(const FT_OpaquePaint& a, const FT_OpaquePaint& b) { } #endif +#define SK_AFTER_FT_TRANSFORM_RENAME FREETYPE_MAJOR >= 2 && FREETYPE_MINOR >= 11 + namespace { FT_Pixel_Mode compute_pixel_mode(SkMask::Format format) { @@ -759,8 +761,13 @@ void colrv1_transform(SkCanvas* canvas, FT_Face face, FT_COLR_Paint colrv1_paint SkMatrix transform; switch (colrv1_paint.format) { +#if SK_AFTER_FT_TRANSFORM_RENAME + case FT_COLR_PAINTFORMAT_TRANSFORM: { + transform = ToSkMatrix(colrv1_paint.u.transform.affine); +#else case FT_COLR_PAINTFORMAT_TRANSFORMED: { transform = ToSkMatrix(colrv1_paint.u.transformed.affine); +#endif break; } case FT_COLR_PAINTFORMAT_TRANSLATE: { @@ -880,10 +887,19 @@ 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 SK_AFTER_FT_TRANSFORM_RENAME + case FT_COLR_PAINTFORMAT_TRANSFORM: +#else case FT_COLR_PAINTFORMAT_TRANSFORMED: +#endif colrv1_transform(canvas, face, paint); - traverse_result = colrv1_traverse_paint(canvas, palette, face, - paint.u.transformed.paint, visited_set); + traverse_result = + colrv1_traverse_paint(canvas, palette, face, +#if SK_AFTER_FT_TRANSFORM_RENAME + paint.u.transform.paint, visited_set); +#else + paint.u.transformed.paint, visited_set); +#endif break; case FT_COLR_PAINTFORMAT_TRANSLATE: colrv1_transform(canvas, face, paint); -- cgit v1.2.1