Date: Sunday, February 12, 2023 @ 13:31:52
  Author: foutrelis
Revision: 1400044

upgpkg: electron19 19.1.9-4: FreeType 2.13 rebuild (FS#77459)

Added:
  electron19/trunk/skia-freetype-2.13.patch
Modified:
  electron19/trunk/PKGBUILD

--------------------------+
 PKGBUILD                 |    7 +++++-
 skia-freetype-2.13.patch |   48 +++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 54 insertions(+), 1 deletion(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD    2023-02-12 12:11:21 UTC (rev 1400043)
+++ PKGBUILD    2023-02-12 13:31:52 UTC (rev 1400044)
@@ -6,7 +6,7 @@
 _chromiumver=102.0.5005.167
 _gcc_patchset=6
 # shellcheck disable=SC2034
-pkgrel=3
+pkgrel=4
 
 _major_ver=${pkgver%%.*}
 if [[ ${_use_suffix} != 0 ]]; then
@@ -53,6 +53,7 @@
         'jinja-python-3.10.patch'
         'use-system-libraries-in-node.patch'
         'std-vector-non-const.patch'
+        'skia-freetype-2.13.patch'
         'roll-src-third_party-ffmpeg.patch'
         'chromium-libxml-unbundle.patch'
         'sql-make-VirtualCursor-standard-layout-type.patch'
@@ -68,6 +69,7 @@
             '55dbe71dbc1f3ab60bf1fa79f7aea7ef1fe76436b1d7df48728a1f8227d2134e'
             'c70652a8b24c237bcfd27469de32797a2cb46d9f0d63d897bb6418314a25644c'
             '76b969e1534e8c355b8b524a686cbf3b24136eaa6bd40b0c09fdd9866049f159'
+            '3a2876e54755df12aacd0575d9d2ff345fabaca6a0dddc72208787dbb2f34fcb'
             '30df59a9e2d95dcb720357ec4a83d9be51e59cc5551365da4c0073e68ccdec44'
             'fd3bf124aacc45f2d0a4f1dd86303fa7f2a3d4f4eeaf33854631d6cb39e12485'
             'b94b2e88f63cfb7087486508b8139599c89f96d7a4181c61fec4b4e250ca327a'
@@ -166,6 +168,9 @@
   # Remove '-Xclang -no-opaque-pointers' flag not supported by our clang
   patch -Np1 -i ../remove-no-opaque-pointers-flag.patch
 
+  # Upstream fixes
+  patch -Np1 -d third_party/skia <../skia-freetype-2.13.patch
+
   # Revert ffmpeg roll requiring new channel layout API support
   # https://crbug.com/1325301
   patch -Rp1 -i ../roll-src-third_party-ffmpeg.patch

Added: skia-freetype-2.13.patch
===================================================================
--- skia-freetype-2.13.patch                            (rev 0)
+++ skia-freetype-2.13.patch    2023-02-12 13:31:52 UTC (rev 1400044)
@@ -0,0 +1,48 @@
+From c1373396b85792ee6cf7fcc16870bd3d7e9d0c93 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Dominik=20R=C3=B6ttsches?= <[email protected]>
+Date: Tue, 21 Jun 2022 17:33:38 +0300
+Subject: [PATCH] Prepare for FreeType change from FT_F2Dot14 to FT_Fixed for
+ stop_offset
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+In order to support a larger range for stop offsets in variable fonts, I
+plan to resize the stop_offset field to 16.16 in FreeType. Prepare Skia
+for handling that change.
+
+Bug: chromium:1311241
+Change-Id: I1da46a3e4c79f2f3d091e65005c19d16dc382669
+Reviewed-on: https://skia-review.googlesource.com/c/skia/+/551638
+Reviewed-by: Florin Malita <[email protected]>
+Commit-Queue: Dominik Röttsches <[email protected]>
+---
+ src/ports/SkFontHost_FreeType_common.cpp | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
+
+diff --git a/src/ports/SkFontHost_FreeType_common.cpp 
b/src/ports/SkFontHost_FreeType_common.cpp
+index ffcb3fd23f..d45cbfd958 100644
+--- a/src/ports/SkFontHost_FreeType_common.cpp
++++ b/src/ports/SkFontHost_FreeType_common.cpp
+@@ -93,6 +93,12 @@ const char* SkTraceFtrGetError(int e) {
+ bool operator==(const FT_OpaquePaint& a, const FT_OpaquePaint& b) {
+     return a.p == b.p && a.insert_root_transform == b.insert_root_transform;
+ }
++
++// The stop_offset field is being upgraded to a larger representation in 
FreeType, and changed from
++// 2.14 to 16.16. Adjust the shift factor depending on size type.
++static_assert(sizeof(FT_Fixed) != sizeof(FT_F2Dot14));
++constexpr float kColorStopShift =
++    sizeof(FT_ColorStop::stop_offset) == sizeof(FT_F2Dot14) ? 1 << 14 : 1 << 
16;
+ #endif
+ 
+ namespace {
+@@ -551,7 +557,7 @@ bool colrv1_configure_skpaint(FT_Face face,
+         FT_ColorStopIterator mutable_color_stop_iterator = colorStopIterator;
+         while (FT_Get_Colorline_Stops(face, &color_stop, 
&mutable_color_stop_iterator)) {
+             FT_UInt index = mutable_color_stop_iterator.current_color_stop - 
1;
+-            colorStopsSorted[index].pos = color_stop.stop_offset / float(1 << 
14);
++            colorStopsSorted[index].pos = color_stop.stop_offset / 
kColorStopShift;
+             FT_UInt16& palette_index = color_stop.color.palette_index;
+             if (palette_index == kForegroundColorPaletteIndex) {
+                 U8CPU newAlpha = SkColorGetA(foregroundColor) *

Reply via email to