summaryrefslogtreecommitdiff
path: root/external
diff options
context:
space:
mode:
authorLuboš Luňák <l.lunak@collabora.com>2021-11-26 09:10:57 +0100
committerLuboš Luňák <l.lunak@collabora.com>2021-11-29 21:49:10 +0100
commitf7a628f8efe037c1fd7e594eb4b8fc6a44573384 (patch)
tree020ab596637fbe98ee599966dfd5287a9a034d6b /external
parent4a11c85baeb4998e12bc2ab45b0c23d7203bd5b0 (diff)
implement xor drawing directly using Skia (tdf#141090)
Up until now this has been implemented like in almost all other VCL backends by manually xor-ing pixel values. But that required fetching pixel values from the GPU in Vulkan mode, which is relatively slow. Since some time Skia now has supported writing custom blending modes using the SkBlender class, so it's now possible to drop the hack and support xor drawing directly using a blender that does the operation. This should be both faster and simpler. Change-Id: Id751d0ed4034852ce68697ecf56cc6dfac95307f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126051 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
Diffstat (limited to 'external')
-rw-r--r--external/skia/UnpackedTarball_skia.mk1
-rw-r--r--external/skia/allow-no-es2restrictions.patch.113
2 files changed, 14 insertions, 0 deletions
diff --git a/external/skia/UnpackedTarball_skia.mk b/external/skia/UnpackedTarball_skia.mk
index c6e27ecf4183..cbaa37895061 100644
--- a/external/skia/UnpackedTarball_skia.mk
+++ b/external/skia/UnpackedTarball_skia.mk
@@ -37,6 +37,7 @@ skia_patches := \
disable-freetype-colrv1.1 \
windows-libraries-system32.patch.1 \
fix-graphite-ifdef.patch.1 \
+ allow-no-es2restrictions.patch.1 \
$(eval $(call gb_UnpackedTarball_set_patchlevel,skia,1))
diff --git a/external/skia/allow-no-es2restrictions.patch.1 b/external/skia/allow-no-es2restrictions.patch.1
new file mode 100644
index 000000000000..0195ad3d2ac8
--- /dev/null
+++ b/external/skia/allow-no-es2restrictions.patch.1
@@ -0,0 +1,13 @@
+diff --git a/include/effects/SkRuntimeEffect.h b/include/effects/SkRuntimeEffect.h
+index b3f21b1d58..dddc8d16dc 100644
+--- a/include/effects/SkRuntimeEffect.h
++++ b/include/effects/SkRuntimeEffect.h
+@@ -97,7 +97,7 @@ public:
+ // run the inliner directly, but they still get an inlining pass once they are painted.)
+ bool forceNoInline = false;
+
+- private:
++// private:
+ friend class SkRuntimeEffect;
+ friend class SkRuntimeEffectPriv;
+