summaryrefslogtreecommitdiffstats
path: root/src/gui/painting/qrgba64_p.h
Commit message (Collapse)AuthorAgeFilesLines
* Fix warnings about uninitialized variables - qrgba64_p.hLiang Qi2019-01-071-4/+4
| | | | | | | | | | In function 'QRgba64 rgbBlend(QRgba64, QRgba64, uint)': error: 'blend.QRgba64::rgba' is used uninitialized in this function [-Werror=uninitialized] qrgba64_p.h:246:13: note: 'blend' was declared here QRgba64 blend; Change-Id: I7b263f863281c51c7d8099704f2cffcc7e1a07df Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Smooth image scaling for 64bit imagesAllan Sandfeld Jensen2018-08-221-13/+0
| | | | | | | | Adds support for smooth scaling 64bit images. Task-number: QTBUG-45858 Change-Id: If46030fb8e7d684159f852a3b8266a74e5e6700c Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* Optimize unpremultiply using SSE rcpAllan Sandfeld Jensen2018-05-231-1/+2
| | | | | Change-Id: I255031d354b0fde7abe8366ea2c86a35f9f24afd Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Generalize composition functionsAllan Sandfeld Jensen2018-04-061-18/+5
| | | | | | | | 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>
* Add AVX2 optimized versions of the most basic RGB64 compositionsAllan Sandfeld Jensen2018-01-041-0/+15
| | | | | | | Speeds up RGB30 and ARGB32-unpremul painting. Change-Id: I419afdf5c26ceffc0f7557b8f196035056178c9a Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix QRgba64 rgbBlendAllan Sandfeld Jensen2017-02-161-2/+3
| | | | | | | | | | | The subpixel RGB alpha values were not converted from host endian to RGBA order before being used as RGBA ordered. Task-number: QTBUG-58619 Change-Id: I18e1c9df902c7e9001a0e511f06fc953dd7afa3e Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* Fix toArgb32 on NEONAllan Sandfeld Jensen2017-01-091-1/+6
| | | | | | | | | | The color components were not correctly shuffled to ARGB host-order form. Discovered and tested with tst_QPainter::blendARGBonRGB on ARM. Change-Id: I2ef9b6129dd83f3c6be0b30c0a5e3684564e6b2f Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* Optimized LCD text blendingAllan Sandfeld Jensen2016-12-011-0/+46
| | | | | | | | Make a QRGba64 helper function for LCD blending following our standard form. Change-Id: Ib29cf8e780a042ed46554c55c67a698a0e3eddcd Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
* Optimize RGBA64 toArgb32Allan Sandfeld Jensen2016-12-011-0/+49
| | | | | | | Adds NEON and SSE2 optimized toArgb32 functions. Change-Id: Icfd280a353bfc2ac5d6983dc37aae5ed03e05ad5 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* Add qtguiglobal.h and qtguiglobal_p.hLars Knoll2016-07-031-0/+1
| | | | | | | | | | | | | | | | | | | | The new modular configuration system requires one global header per module, that is included by all other files in this module. A similar scheme and naming convention is already being used for many other modules (e.g. printsupport, qml, quick). That header will later on #include the configuration file for Qt Gui. For now it defines the Q_GUI_EXPORT macro for this library. In addition, add a private global header, qtguiglobal_p.h, that can later on include the private config header for Qt Gui for things we don't want to export to the world. Change-Id: Id9ce2a4f3d2962c3592c35e3d080574789195f24 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* ARM: Vectorize common QRgba64 compositing functions.Erik Verbruggen2016-05-241-17/+83
| | | | | | | | | | | | | | | | 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>
* Fix missing "We mean it" in qtbase private headersThiago Macieira2015-10-011-0/+11
| | | | | Change-Id: I42e7ef1a481840699a8dffff1408dfd4fd9c8e32 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* Extend high color rendering to image renderingAllan Sandfeld Jensen2015-04-141-8/+25
| | | | | | | | | | | | A previous commit added 16-bit per color-channel precision to solids and linear gradients. This patch extends that to include texture data. To support that pixellayouts now have a method to convert to RGBA64. Change-Id: I661ae91bd7038085787003608a0af4add057e478 Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
* Add support for more composition modes in rgb64 renderingAllan Sandfeld Jensen2015-04-131-0/+20
| | | | | Change-Id: I3bacecbabdf2d7b2de1acd86ab9383e69924a390 Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
* Solid and gradients in high color accuracyAllan Sandfeld Jensen2015-04-101-0/+83
This patch updates the internal color precisions of solids and gradients to 16bit per color. This makes it possible to render at higher precision on non-premultiplied ARGB32, the RGB30 formats and any other hi-color formats if more are added. [ChangeLog][QtGui][Painting] Internal precision of solids and gradients is now up to 16bit per color. Change-Id: Ieae5468bd6de1f56adfa4cb9fa966faf2ed824fd Reviewed-by: Gunnar Sletta <gunnar@sletta.org>