summaryrefslogtreecommitdiffstats
path: root/src/gui/painting/qrgba64.h
Commit message (Collapse)AuthorAgeFilesLines
* Optimize QRgba64::toArgb32() and premultiplied()Allan Sandfeld Jensen2018-11-241-6/+34
| | | | | | | Using similar techniques as used for QRgb qPremultiply and friends Change-Id: I4be68cb01dc3b634cf370323884e824674205998 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Optimize unpremultiply using SSE rcpAllan Sandfeld Jensen2018-05-231-0/+4
| | | | | Change-Id: I255031d354b0fde7abe8366ea2c86a35f9f24afd Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Clean-up QRgba64 constructorsAllan Sandfeld Jensen2017-03-131-13/+1
| | | | | | | | | | | | | | | | | We can add basic constructors now on all supported platforms, and can make initialization consistent on all platforms, choosing undefined as the default. Note this changes behavior on gcc and clang builds, but is consistent with pre-c++11 gcc and clang builds and with msvc. [ChangeLog][QtGui][QRgba64] The default constructor on Clang and GCC builds now no longer initializes with 0s, but leaves the value uninitialized. This is consistent with MSVC behavior and pre-C++11 behavior of GCC and Clang. Change-Id: Ib0e3d7f4274a13a768db62931b67877e3898945e Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* Add qtguiglobal.h and qtguiglobal_p.hLars Knoll2016-07-031-1/+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>
* Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-04-251-19/+19
|\ | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: config.tests/unix/compile.test configure src/android/jar/src/org/qtproject/qt5/android/QtMessageDialogHelper.java src/corelib/global/qglobal.cpp src/widgets/kernel/qapplication.cpp src/widgets/styles/qwindowsvistastyle.cpp tests/auto/corelib/kernel/qobject/tst_qobject.cpp Change-Id: I067083f34e5290aa5f7565e40c30a069cc37b83a
| * Avoid conversion warnings in qrgba64.hAllan Sandfeld Jensen2016-04-141-19/+19
| | | | | | | | | | | | | | | | | | Make implicit down conversions explicit to silence the most pedantic of compiler warnings. Task-number: QTBUG-52545 Change-Id: Id8f9574b47c8b4ee43023c80a3e009fab0e85008 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
* | 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>
* | Give names to enum used in templates.Rolland Dudemaine2015-12-041-1/+1
|/ | | | | | | | The GHS toolchain needs names for enumerations that are used for template instantiation. Change-Id: I4e184cd77074fd7ece89f21317536e6006ab257d Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Set private inline QRgba64 methods always inlineAllan Sandfeld Jensen2015-11-061-6/+6
| | | | | | | By setting them always inline we ensure they will never generate symbols. Change-Id: I2c815c4fe2cb498187656e0b25ef4499258885ff Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
* Optimize set color component in RGBA64Allan Sandfeld Jensen2015-08-271-9/+9
| | | | | | | | After the removal of direct access through type punning, the direct color setters can be better optimized. Change-Id: Icaa5b1f8c8fe90863dd42fa4dfb5a2998c273465 Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
* Fix double initialization of QRgba64 with C++14Allan Sandfeld Jensen2015-08-241-23/+24
| | | | | | | | | Use constructors with C++11/C++14 where it is allowed to avoid hack that caused double initialization and thereby performance regression with C++14. Change-Id: I7ae86df8aa34000b2c186e22bd9917303354b794 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Remove type punning from QRgba64.Erik Verbruggen2015-08-111-49/+68
| | | | | | | | | | | | In C++, type punning with a union is not allowed. It will result in compiler defined behavior at best, and undefined behavior at worst. Specifically, if QRgba64 is passed to a function by value, the different members of a struct might be passed in separate registers. This means that any write to the quint64 might not blank out the values of the struct whenever the compiler looses track with TBAA. Change-Id: I991b5492fe4bb13a14bb670fef5bf13dacbe6c0a Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
* Mark QRGba64 as Q_PRIMITIVE_TYPEMarc Mutz2015-04-271-0/+2
| | | | | Change-Id: I1ab25a7b880b47f616ae152400c1e2116688ec4c Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* Don't use anonymous types declared in an anonymous unionLiang Qi2015-04-221-6/+8
| | | | | | | At least clang is unhappy with them when -Wnested-anon-types is enabled. Change-Id: Ia9869fecb836b27be69f7b9715fd614f384bb912 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
* Solid and gradients in high color accuracyAllan Sandfeld Jensen2015-04-101-0/+9
| | | | | | | | | | | | | 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>
* Fix C++14 compilation in QRgba64Olivier Goffart2015-03-161-2/+11
| | | | | | | | QRgba64 has Q_DECL_RELAXED_CONSTEXPR that builds a QRgba64, but it has no constructor that can be used in a constexpr. Change-Id: Ia032b65151243d071440c05479e8f2549c8b9503 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
* Introduce QRgba64 structure for 64bit RGBA valuesAllan Sandfeld Jensen2015-03-101-0/+186
This structure is meant to replace QRgb where higher precision is needed. Change-Id: I49d441e2133371a8b91c2e6af0c137bcc5fcb9ed Reviewed-by: Gunnar Sletta <gunnar@sletta.org>