diff options
author | Luboš Luňák <l.lunak@collabora.com> | 2021-11-26 09:10:57 +0100 |
---|---|---|
committer | Luboš Luňák <l.lunak@collabora.com> | 2021-11-29 21:49:10 +0100 |
commit | f7a628f8efe037c1fd7e594eb4b8fc6a44573384 (patch) | |
tree | 020ab596637fbe98ee599966dfd5287a9a034d6b /external | |
parent | 4a11c85baeb4998e12bc2ab45b0c23d7203bd5b0 (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.mk | 1 | ||||
-rw-r--r-- | external/skia/allow-no-es2restrictions.patch.1 | 13 |
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; + |