summaryrefslogtreecommitdiffstats
path: root/src/gui/image/qimage_conversions.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2014-02-121-1/+1
| | | | | | | | | | Conflicts: src/gui/image/qimage.cpp src/gui/text/qtextengine.cpp src/plugins/platforms/linuxfb/qlinuxfbscreen.cpp src/printsupport/kernel/qprintengine_win.cpp Change-Id: I09ce991a57f39bc7b1ad6978d0e0d858df0cd444
* Export optimized premultiply and unpremultiply methodsAllan Sandfeld Jensen2014-02-101-13/+13
| | | | | | | | | | | | | | | | This patch optimizes the unpremultiply method further by using a lookup table to avoid any divisions at all. The opportunity is taken to export both premultiply and unpremultiply since they are commonly used methods relevant to the exported QRgb type that can be both premultiplied and unpremultipled ARGB. [ChangeLog][QtGui][QColor] Exported highly optimized methods for premultiply and unpremultiply of QRgb values. Change-Id: I658bcf57b0bc73c34c1765b64617d43b63ae820b Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
* Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2014-01-201-0/+6
| | | | | | | | | | | | | | Conflicts: src/corelib/global/qglobal.h src/corelib/tools/qstring.cpp src/gui/image/image.pri src/gui/image/qimage.cpp src/plugins/platforms/cocoa/qcocoawindow.h src/plugins/platforms/cocoa/qcocoawindow.mm src/plugins/platforms/eglfs/qeglfshooks_stub.cpp tests/auto/corelib/io/qstandardpaths/tst_qstandardpaths.cpp Change-Id: I3b9ba029c8f2263b011f204fdf68c3231c6d4ce5
* Add generic inplace converterAllan Sandfeld Jensen2014-01-181-0/+34
| | | | | | | | | | | | The generic converter can easily be modified to work inplace. Such an inplace converter can ensure we can do direct conversion between formats of similar pixel depth. Inplace conversion is currently only used by QPixmaps, but will be used by ref qualified versions of QImage::convertToFormat in a future patch. Change-Id: Idbdaf087b53deecdee8258ba0b5d80edd37cfe79 Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
* Remove runtime detection of Neon on ARM CPUsThiago Macieira2014-01-161-8/+5
| | | | | | | | | | | | | Now the only way to enable Neon support is to change the mkspec. [ChangeLog][Important Behavior Changes] Qt no longer checks for support for the Neon FPU on ARM platforms at runtime. Code optimized for Neon must be enabled unconditionally at compile time by ensuring the compiler supports Neon. You may need to edit your mkspec for that. Task-number: QTBUG-30440 Change-Id: I4df9b2bf3cd022f8ed70f02f16878cb2cb3fe6fb Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Remove runtime detection of SSE2Thiago Macieira2014-01-161-14/+15
| | | | | | | | | | | | | | | | | | If the compiler supports SSE2, we'll use our SSE2-optimised code unconditionally. Runtime detection is left for SSSE3 code. The SSE2 codebase is big and thus a timebomb if an inline function gets leaked out and run without runtime check. In reality, it's extremely unlikely people running CPUs without SSE2 support are running Qt 5 at this moment (they're either too old or too new, e.g. Intel Quark). The SSSE3 codebase is a lot more manageable. Task-number: QTBUG-30440 Change-Id: I3e586e4434e820365d5316b650ee3061d0acf767 Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Avoid unnecessary double conversion over ARGB32 and ARGB32PMAllan Sandfeld Jensen2014-01-101-53/+45
| | | | | | | | | | | | | | | Currently if the converter_map does not have an entry for how to do a direct conversion, the image is first converted to ARGB32 and then to the final format. In most cases the conversion to ARGB32 is the generic converter which convert over ARGB32PM, which mean the data is converted to ARGB32PM then to ARGB32, then to ARBG32PM and then to final format. This patch uses the generic converter directly everywhere there isn't an optimized converter declared and it is valid. Change-Id: Ibad57432ef8c58025e63a032b09f92dad4a559ee Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
* Clean up qimage.cpp by moving all the conversions methods outAllan Sandfeld Jensen2014-01-101-0/+2153
A large part of qimage.cpp is the implementation of the various conversions methods from one format to another. These methods could all be moved to a separate file to make qimage.cpp smaller, and possible later enable more aggressive optimization on the conversions. Change-Id: I355806710281b4222114cdd9c35a7c28cbc0f692 Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>