aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/skia/remove-directwrite-png-dependency.patch
diff options
context:
space:
mode:
authorEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
committerEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
commit54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch)
treed915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/skia/remove-directwrite-png-dependency.patch
move to own git serverHEADmaster
Diffstat (limited to 'vcpkg/ports/skia/remove-directwrite-png-dependency.patch')
-rw-r--r--vcpkg/ports/skia/remove-directwrite-png-dependency.patch48
1 files changed, 48 insertions, 0 deletions
diff --git a/vcpkg/ports/skia/remove-directwrite-png-dependency.patch b/vcpkg/ports/skia/remove-directwrite-png-dependency.patch
new file mode 100644
index 0000000..3a48f39
--- /dev/null
+++ b/vcpkg/ports/skia/remove-directwrite-png-dependency.patch
@@ -0,0 +1,48 @@
+From 85f9aa5907e3e445dabdf24be64032b8a76455ce Mon Sep 17 00:00:00 2001
+From: Ben Wagner <bungeman@google.com>
+Date: Thu, 9 Oct 2025 10:55:24 -0400
+Subject: [PATCH] Remove DirectWrite direct dependency on png codec
+
+SkScalerContext_DW::generatePngMetrics was still calling the png codec
+directly, while SkScalerContext_DW::drawPngImage used the png codec
+indirectly already. Make generatePngMetrics work like drawPngImage.
+
+Bug: 446241210
+Change-Id: Iddbc76f80e85a12fac2be8126d1efb102fc79d2c
+Reviewed-on: https://skia-review.googlesource.com/c/skia/+/1070816
+Auto-Submit: Ben Wagner <bungeman@google.com>
+Reviewed-by: Kaylee Lubick <kjlubick@google.com>
+Commit-Queue: Kaylee Lubick <kjlubick@google.com>
+---
+ src/ports/SkScalerContext_win_dw.cpp | 8 +++-----
+ 1 file changed, 3 insertions(+), 5 deletions(-)
+
+diff --git a/src/ports/SkScalerContext_win_dw.cpp b/src/ports/SkScalerContext_win_dw.cpp
+index b6fc437f3922..deaea1f48993 100644
+--- a/src/ports/SkScalerContext_win_dw.cpp
++++ b/src/ports/SkScalerContext_win_dw.cpp
+@@ -11,8 +11,6 @@
+
+ #undef GetGlyphIndices
+
+-#include "include/codec/SkCodec.h"
+-#include "include/codec/SkPngDecoder.h"
+ #include "include/core/SkBBHFactory.h"
+ #include "include/core/SkBitmap.h"
+ #include "include/core/SkData.h"
+@@ -1737,12 +1735,12 @@ bool SkScalerContext_DW::generatePngMetrics(const SkGlyph& glyph, SkRect* bounds
+ &ReleaseProc,
+ context);
+
+- std::unique_ptr<SkCodec> codec = SkPngDecoder::Decode(std::move(data), nullptr);
+- if (!codec) {
++ sk_sp<SkImage> image = SkImages::DeferredFromEncodedData(std::move(data));
++ if (!image) {
+ return false;
+ }
+
+- SkImageInfo info = codec->getInfo();
++ SkImageInfo info = image->imageInfo();
+ *bounds = SkRect::Make(info.bounds());
+
+ SkMatrix matrix = fSkXform;