summaryrefslogtreecommitdiffstats
path: root/src/gui/painting/qcompositionfunctions.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote-tracking branch 'origin/5.13' into devLiang Qi2019-08-131-6/+18
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: mkspecs/win32-clang-msvc/qmake.conf src/corelib/tools/qlist.h src/gui/painting/qcompositionfunctions.cpp src/gui/painting/qtriangulator_p.h src/gui/text/qfontengine_p.h src/network/kernel/qhostinfo_p.h src/platformsupport/fontdatabases/freetype/qfontengine_ft.cpp Done-With: Allan Sandfeld Jensen <allan.jensen@qt.io> Change-Id: Ib8a0308cf77224c4fbdcf56778fdac4a43e37798
| * Merge remote-tracking branch 'origin/5.12' into 5.13Liang Qi2019-08-051-6/+18
| |\ | | | | | | | | | | | | | | | | | | | | | Conflicts: qmake/generators/unix/unixmake2.cpp src/plugins/platforms/cocoa/qcocoawindow.mm Change-Id: Iba7aa7324f35543e0297a3680956420058cd3630
| | * Fix QPainter's ColorDodge and ColorBurn composition modesPavel Artsishevsky2019-08-021-6/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Added checking corner cases (more specific formulas) in color_dodge_op()/color_dodge_op_rgb64() and color_burn_op()/color_burn_op_rgb64() to produce correct results for any input. Task-number: QTBUG-77231 Change-Id: I274f80b356bd4236a9176a84a95604c2eb01787a Reviewed-by: Konstantin Tokarev <annulen@yandex.ru> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | | Make the 64 bit raster backend an optional featureAllan Sandfeld Jensen2019-04-091-309/+393
|/ / | | | | | | | | | | | | | | Can be used to make smaller binaries, and possibly speed up ARGB32 rendering on some platforms. Change-Id: I7647b197ba7a6582187cc9736b7e0d752bd5bee5 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* / Remove unnecessary Q_STATIC_TEMPLATE_FUNCTION macroThiago Macieira2018-11-061-44/+44
|/ | | | | | | It expands to the same thing in all three branches. Change-Id: I343f2beed55440a7ac0bfffd15636a8bfd8fd21c Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Generalize composition functionsAllan Sandfeld Jensen2018-04-061-454/+640
| | | | | | | | Change the composition functions upto and including comp_func_plus to a templated structure sharing implementations. Change-Id: I14bcb4b28870aacffce78f372589fdebbaf12ecf Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* Cleanup of qcompositionfunctionsAllan Sandfeld Jensen2017-11-051-170/+53
| | | | | | | | | | | Remove long unused preload defines, make sign of alpha more consistent and use the RGB64 define structure more. This is preparing for trying to unify the declarations in case we need a third form with floating points for HDR. Change-Id: I47fc283aff1fe31a1eaba17e0413bc1e722f6a06 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* Implement remaining porter-duff compositions for rgb64Allan Sandfeld Jensen2017-06-071-15/+777
| | | | | | | | | Gets rid of debug output when they are used, which is more common now that we use it for unpremultiplied ARGB32. Task-number: QTBUG-60549 Change-Id: I14b2eb34d1d08612916e2b69b188f33dbe1b525c Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* Fix grayscale painting regression in 64-bit raster engineAllan Sandfeld Jensen2016-08-031-2/+6
| | | | | | | | | | | A new define for better vectorized compositioning had a mistake that caused some sources to be converted to grayscale when composited. Added two 10 bit per channel formats to the lancelot test to catch regressions in the future. Change-Id: I1c468e6b93d68185e517fc0d44c6c927f9f7135f Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
* Fix rgb64 on aarch64Laszlo Agocs2016-06-151-4/+4
| | | | | | | | | | | | Instead of quint64 use uint64_t in order to avoid errors like error: invalid conversion from 'quint64* {aka long long unsigned int*}' to 'const uint64_t* {aka const long unsigned int*}' Unify const usage for LOAD and switch to C++ casts. Change-Id: I4a6a8ec5b24f2f306645178fe00f6bfb1c429403 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* ARM: Vectorize common QRgba64 compositing functions.Erik Verbruggen2016-05-241-30/+70
| | | | | | | | | | | | | | | | Adds overloaded functions for some common operations used for compositing, and use those together with specialized loading/storing. QRgba64 is represented as a quint64, so most of the time it lives in the integer registers. By overloading functions to return SIMD data types, the temporary values are kept in SIMD registers (so no more unnecessary transfers between the registers, which can cost a lot on ARM). It also allows the compiler to do better TBAA and optimizations. Another benefit is that the loop bodies are smaller, giving them a higher chance to fit in the micro-op cache of modern CPUs. Change-Id: I5f13cd0677176b1162425fe59d42868d0d20f6e2 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Updated license headersJani Heikkinen2016-01-151-14/+20
| | | | | | | | | | | From Qt 5.7 -> LGPL v2.1 isn't an option anymore, see http://blog.qt.io/blog/2016/01/13/new-agreement-with-the-kde-free-qt-foundation/ Updated license headers to use new LGPL header instead of LGPL21 one (in those files which will be under LGPL v3) Change-Id: I046ec3e47b1876cd7b4b0353a576b352e3a946d9 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* Move composition out of qdrawhelper.cAllan Sandfeld Jensen2015-04-161-0/+2197
Also changes the way the SSE2 composition modes are inserted into the table, so it is handled like all the other tables and doesn't require duplicating most of the table. Change-Id: I8de383caece0367bc7466d7a1b145aa820c3bd6a Reviewed-by: Gunnar Sletta <gunnar@sletta.org>