summaryrefslogtreecommitdiff
path: root/Tools/qt/patches/qtbase-5.4-fix-QTBUG-77231.patch
diff options
context:
space:
mode:
authorQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2019-09-10 13:08:05 +0200
committerQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2019-09-10 13:08:05 +0200
commit81cbb264cb9446c4408124d50aeff50164ad0ab4 (patch)
tree6acc39b8ea0165562d480f1c54608c6c4ae9f865 /Tools/qt/patches/qtbase-5.4-fix-QTBUG-77231.patch
parentbeaeeb99881184fd368c121fcbb1a31c78b794a3 (diff)
parent5087e0ced43d813eb6f765913a6fc3958d2a7a9d (diff)
downloadqtwebkit-81cbb264cb9446c4408124d50aeff50164ad0ab4.tar.gz
Merge remote-tracking branch 'origin/5.212' into dev
Change-Id: I4e185b15690118515df80a79b786cbb8b30dd144
Diffstat (limited to 'Tools/qt/patches/qtbase-5.4-fix-QTBUG-77231.patch')
-rw-r--r--Tools/qt/patches/qtbase-5.4-fix-QTBUG-77231.patch50
1 files changed, 50 insertions, 0 deletions
diff --git a/Tools/qt/patches/qtbase-5.4-fix-QTBUG-77231.patch b/Tools/qt/patches/qtbase-5.4-fix-QTBUG-77231.patch
new file mode 100644
index 000000000..6858e585c
--- /dev/null
+++ b/Tools/qt/patches/qtbase-5.4-fix-QTBUG-77231.patch
@@ -0,0 +1,50 @@
+--- a/src/gui/painting/qdrawhelper.cpp 2014-12-05 19:24:36.000000000 +0300
++++ b/src/gui/painting/qdrawhelper.cpp 2019-08-03 15:31:42.034910641 +0300
+@@ -3506,8 +3506,10 @@
+ }
+
+ /*
+- if Sca.Da + Dca.Sa >= Sa.Da
++ if Sca.Da + Dca.Sa > Sa.Da
+ Dca' = Sa.Da + Sca.(1 - Da) + Dca.(1 - Sa)
++ else if Sca == Sa
++ Dca' = Dca.Sa + Sca.(1 - Da) + Dca.(1 - Sa)
+ otherwise
+ Dca' = Dca.Sa/(1-Sca/Sa) + Sca.(1 - Da) + Dca.(1 - Sa)
+ */
+@@ -3518,8 +3520,10 @@
+ const int src_da = src * da;
+
+ const int temp = src * (255 - da) + dst * (255 - sa);
+- if (src_da + dst_sa >= sa_da)
++ if (src_da + dst_sa > sa_da)
+ return qt_div_255(sa_da + temp);
++ else if (src == sa || sa == 0)
++ return qt_div_255(temp);
+ else
+ return qt_div_255(255 * dst_sa / (255 - 255 * src / sa) + temp);
+ }
+@@ -3589,8 +3593,10 @@
+ }
+
+ /*
+- if Sca.Da + Dca.Sa <= Sa.Da
++ if Sca.Da + Dca.Sa < Sa.Da
+ Dca' = Sca.(1 - Da) + Dca.(1 - Sa)
++ else if Sca == 0
++ Dca' = Dca.Sa + Sca.(1 - Da) + Dca.(1 - Sa)
+ otherwise
+ Dca' = Sa.(Sca.Da + Dca.Sa - Sa.Da)/Sca + Sca.(1 - Da) + Dca.(1 - Sa)
+ */
+@@ -3602,8 +3608,10 @@
+
+ const int temp = src * (255 - da) + dst * (255 - sa);
+
+- if (src == 0 || src_da + dst_sa <= sa_da)
++ if (src_da + dst_sa < sa_da)
+ return qt_div_255(temp);
++ else if (src == 0)
++ return qt_div_255(dst_sa + temp);
+ return qt_div_255(sa * (src_da + dst_sa - sa_da) / src + temp);
+ }
+