summaryrefslogtreecommitdiffstats
path: root/src/gui/painting
Commit message (Collapse)AuthorAgeFilesLines
* Use aligned load for the blending of RGB32 over RGB32Benjamin Poulain2010-07-211-2/+12
| | | | | | | | Aligned load are faster than unaligned load. This patch add a prologue to the blending function in order to align the destination on 16 bytes before using SSE2. Reviewed-by: Kent Hansen
* Remove the masking when computing qAlpha()Benjamin Poulain2010-07-201-1/+1
| | | | | | | | | | | | | After a bit shift of 24, only the alpha value should remain, so it is not necessary to mask the result. The documentation state QRgb works on a ARGB quadruplet, so the upper bits can be assumed to be zero in the cases when QRgb is 64 bits. This saves some time because qAlpha() is used for each pixel in the generic blend functions. Reviewed-by: Andreas Kling Reviewed-by: Kim
* Corrected BLEND_SOURCE_OVER_ARGB32_WITH_CONST_ALPHA_SSE2Andreas Kling2010-07-181-4/+4
| | | | | The unaligned prologue was processed without using the const alpha. Regressed with 9427b4c8f3b5.
* Used aligned load and store when possible for the blending of ARGB32Benjamin Poulain2010-07-171-5/+28
| | | | | | | | | | | | | Unaligned load and store can be costly. This patch mitigate the problem by aligning the destination before using SSE2. The destination is aligned because it is used by load and store, while the source is only use by load. On Atom, the blending test is 7% faster for ARGB32. Re-pushing that patch, thanks to awesome policies... Reviewed-by: Andreas Kling
* SSE2 implementation of convert_ARGB_to_ARGB_PM_inplace for QImageJohn Brooks2010-07-072-10/+8
| | | | | Merge-request: 725 Reviewed-by: Benjamin Poulain <benjamin.poulain@nokia.com>
* Moved primitive SSE2 painting utilities to qdrawingprimitive_sse2_p.hJohn Brooks2010-07-073-157/+218
| | | | | Merge-request: 725 Reviewed-by: Benjamin Poulain <benjamin.poulain@nokia.com>
* Move logic for building SIMD extensions to gui.proJohn Brooks2010-07-071-145/+7
| | | | | | | | Enables SIMD files to be built outside of painting.pri by appending files to SSE_SOURCES etc. Merge-request: 725 Reviewed-by: Benjamin Poulain <benjamin.poulain@nokia.com>
* Warn when drawPixmapFragments is called with an invalid source rectAndy Shaw2010-07-051-0/+9
| | | | | | | | | | When drawPixmapFragments() is called with fragments that has invalid source rects in it, then usually it causes the pixmap drawn on screen to appear corrupted. However it has been reported that a crash can occur (not reproducable locally) so by adding a warning in debug mode only means that this can hopefully be caught at development time. Reviewed-by: Trond
* Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1 into ↵Qt Continuous Integration System2010-07-031-8/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4.7-integration * '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1: Consolidate zlib configuration redundancy Fixed whitespace formatting Fix incomplete support for built-in jpeg, mng, tiff and gif handlers Split image handler plugin project files No explicit link to zlib/jpeg for system mng/tiff Removed stray line continuations Long live else! qdoc: Added a solution for creating tables of contents for manuals. Doc: Fixed markup. Fixed size hint for combo box on windows
| * Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1 into ↵Qt Continuous Integration System2010-07-021-8/+1
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4.7-integration * '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1: Consolidate zlib configuration redundancy Fixed whitespace formatting Fix incomplete support for built-in jpeg, mng, tiff and gif handlers Split image handler plugin project files No explicit link to zlib/jpeg for system mng/tiff Removed stray line continuations Long live else! qdoc: Added a solution for creating tables of contents for manuals. Doc: Fixed markup. Fixed size hint for combo box on windows
| | * Consolidate zlib configuration redundancyMark Brand2010-07-021-8/+1
| | | | | | | | | | | | | | | Merge-request: 715 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* | | Merge branch '4.7' of scm.dev.nokia.troll.no:qt/qt-s60-public into ↵Qt Continuous Integration System2010-07-031-2/+2
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4.7-integration * '4.7' of scm.dev.nokia.troll.no:qt/qt-s60-public: Hide some more files from git-status. Fixed Qt symbian/linux-armcc mkspec when configured with -qtlibinfix. Fixed symbian/linux-armcc mkspec when configured with -qtlibinfix. Fixed deployment locations for various profiles. Added a top-level runonphone target for Qt and QtWebKit. QS60Style: Simplify QMenu drawing QS60Style: Remove gap from QProgressDialog ColorDialog is incorrectly positioned Support for "deploy" make target in Symbian qtguiu.def merge conflict fix Fix for include "private/qt_s60_p.h" in non-symbian builds Making orbit input methods work with Qt apps with -no-s60 Using the remaining valid data to construct the QTime object when msec parsing failed. QProgressDialog text is too close to dialog border fix for broken input method loading Avkon Removal DEF file updates Stub version of QS60Style Avkon removal configured with -no-s60 QFileDialog broken in landscape in N8
| * | Merge branch '4.7' of scm.dev.nokia.troll.no:qt/qt into 4.7mread2010-07-0215-127/+543
| |\ \ | | |/ | | | | | | | | | | | | Conflicts fixed: src/s60installs/bwins/QtGuiu.def src/s60installs/eabi/QtGuiu.def
| * | Avkon removal configured with -no-s60mread2010-07-011-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Avkon dependencies can be configured out with the -no-s60 configure flag, conversely Qt on Symbian will use Avkon if -s60 is configured. These changes are intended to keep or introduce binary compatibility between the s60 and no-s60 configurations. To do this, it has been necessary to introduce stub equivalents of the CAknAppUi related classes into the no-s60 configuration, and override all Avkon framework virtual functions in the QS60Main... classes. Other than that, these changes are mostly just correcting the use of the Q_WS_S60 flag so that it only refers to Avkon dependencies. Reviewed-by: Sami Merila
* | | Don't do alpha/opaque check which might cause a conversion and later pointer ↵Michael Dominic K2010-07-021-1/+1
| |/ |/| | | | | | | | | | | not-matching. Merge-request: 724 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* | Fixed bug in drawTiledPixmap when width of pixmap matches target rect.Samuel Rødal2010-07-011-1/+2
| | | | | | | | | | | | | | qt_memconvert's duff's device implementation assumes that count is > 0, if count is 0 it will still blit eight pixels. Reviewed-by: Trond
* | Improved performance of 16 bit memrotates using NEON instructions.Samuel Rødal2010-07-017-22/+310
| | | | | | | | | | | | | | | | | | | | | | Make the memrotate functions a function pointer table so that we can replace it with optimized versions, and implement an optimized NEON version for the 90 and 270 rotations. Measured performance improvement for a 400x400 16-bit pixmap was 17 % for 270 degree rotation and 11 % for 90 degree rotation. Reviewed-by: Trond
* | Export various symbols needed to make a custom GL graphicssystem.Michael Dominic K2010-06-301-1/+1
| | | | | | | | | | Merge-request: 2422 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* | Made -graphicssystem trace work with Qt::TextBypassShaping flag.Samuel Rødal2010-06-291-1/+1
| | | | | | | | | | | | The QPaintBuffer gets the text from the text item in order to stream it. Reviewed-by: Jocelyn Turcotte
* | Fix an assertion in comp_func_SourceOver_sse2() if const_alpha == 0Benjamin Poulain2010-06-281-1/+1
| | | | | | | | | | | | | | | | | | Const_alpha == 0 is a corner case that can happen if the painter draw with zero opacity or if the multiplication of alphas is below 1. The assertion was failing for one of the test of QPainter. Reviewed-by: Samuel Rødal
* | New variant of ::createPixmapData with origin for QGraphicsSystem.Michael Dominic K2010-06-283-1/+6
| | | | | | | | | | Merge-request: 705 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* | Fixed autotest failure in QPathClipper on N900.Samuel Rødal2010-06-252-34/+18
| | | | | | | | | | | | | | We need to use double precision for the angle computations, as they are crucial to build correct winged edge structures. Reviewed-by: Trond
* | Fixed autotest failure in fillRect_stretchToDeviceModeSamuel Rødal2010-06-241-1/+1
| | | | | | | | | | | | Swapping the length and color arguments to qt_memfill is a bad idea. Reviewed-by: Benjamin Poulain
* | Add an implementation of comp_func_solid_SourceOver_neon() with Neon.Benjamin Poulain2010-06-233-0/+46
| | | | | | | | | | | | | | | | | | | | The function comp_func_solid_SourceOver_neon() is use extensively by WebKit via the calls to fillRect() of QPainter(). Implementing the function with Neon provides some performance improvement (around 175% of the previous speed). Reviewed-by: Samuel Rødal
* | Fix the casts of qdrawhelper_sse2Benjamin Poulain2010-06-231-4/+4
| | | | | | | | | | | | | | | | I did erroneous cast by mistake, the code should ensure the pointer are on 32 bits integers. Reviewed-by: Andreas Kling Reviewed-by: Samuel Rødal
* | Add a SSE2 implementation of comp_func_solid_SourceOver()Benjamin Poulain2010-06-232-2/+33
| | | | | | | | | | | | | | | | This function is used quite a lot by WebKit animations, the SSE2 implementation is twice as fast in those uses cases. Reviewed-by: Andreas Kling Reviewed-by: Samuel Rødal
* | Add a SSE2 version of comp_func_SourceOver()Benjamin Poulain2010-06-232-61/+116
| | | | | | | | | | | | | | | | | | | | | | | | Implement a version of comp_func_SourceOver() with SSE2. This gives a performance boost of 11% on some WebKit animations. Two new macros were added to simplify the implementation of the different blending primitives: BLEND_SOURCE_OVER_ARGB32_SSE2() and BLEND_SOURCE_OVER_ARGB32_WITH_CONST_ALPHA_SSE2() Reviewed-by: Samuel Rødal
* | Optimized sub-rect copying / painting of QPixmaps.Samuel Rødal2010-06-231-3/+5
| | | | | | | | | | | | | | | | | | Prevented downloading of the whole XImage by introducing new QPixmapData::toImage() overload taking a sub-rect. Also avoid an additional copy by simply taking ownership of the XImage data when the XImage format matches the QImage format. Reviewed-by: Trond
* | Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2 into ↵Qt Continuous Integration System2010-06-231-1/+5
|\ \ | |/ |/| | | | | | | | | 4.7-integration * '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2: Fixed crash in the fast blend functions for raster
| * Fixed crash in the fast blend functions for rasterGunnar Sletta2010-06-231-1/+5
| | | | | | | | | | | | | | | | | | The blend functions don't work when the scaling factor goes beyond 65536, so abort early. Strictly speaking the scale factor comes from targetWidth / sourceWidth, so this catches a bit more cases. Reviewed-by: Kim Task: http://bugreports.qt.nokia.com/browse/QTBUG-9437
* | Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1 into ↵Qt Continuous Integration System2010-06-223-75/+33
|\ \ | |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4.7-integration * '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1: (28 commits) Make sure ValueRecord's DeviceTables is cleaned up on failure qdoc3: Build fix for regression in e2f0e728e Fix incorrect usage of _HB_OPEN_Free_Device() in CaretValue cleanup Fix null HB_Device** dereference on exit in Harfbuzz GPOS code Doc: Relicensed the documentation under the GNU FDL version 1.3. doc: Added more DITA output to the XML generator Designer: Prevent QButtonGroup from being added for Q3ButtonGroup. Fix for a leak in the mac style. Doc: Fixing bugs to style and script doc: Added more DITA output to the XML generator Make sure that <br/> is seen as a valid tag in Qt::mightBeRichText() Fix compiler warnings in QtGui (text,painting). Allow Unix to generate unique UUIDs if /dev/urandom exists. Allow GNU Free Documentation license header. Add missing license header. Updated Harfbuzz from git+ssh://git.freedesktop.org/git/harfbuzz to ab9a897b688e991a8405cf938dea9d6a2f1ac072 Fix example compile and runtime warnings, webkit examples not built. qgl_cl_p.h is no longer existent Updated Harfbuzz from git+ssh://git.freedesktop.org/git/harfbuzz to 5699175f55acbdfa4ac95ab6c727ebd4a201f3a2 Doc: Fixed documentation errors. ...
| * Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1 into 4.7David Boddie2010-06-212-2/+4
| |\
| | * Fix compiler warnings in QtGui (text,painting).Friedemann Kleint2010-06-211-2/+2
| | | | | | | | | | | | Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
| * | Doc: Relicensed the documentation under the GNU FDL version 1.3.David Boddie2010-06-213-75/+33
| | | | | | | | | | | | | | | Reviewed-by: Trust Me Requested-by: Legal
* | | Compiler warnings.Bjørn Erik Nilsen2010-06-212-3/+3
| |/ |/| | | | | Reviewed-by: jbarron
* | Speed up calls to QPainter::setCompositionMode when the mode is unchangedSimon Hausmann2010-06-171-0/+2
|/ | | | | | | | Avoid marking the composition mode as dirty and calling into the extended engine if the composition mode that the application wants to set is the same that's currently used. Reviewed-by: Gunnar
* Fixed infinite recursion when drawing very large painter paths.Kim Motoyoshi Kalland2010-06-163-9/+14
| | | | | Task-number: QTBUG-11291 Reviewed-by: Gunnar
* Fixed full-rule on clipped painter paths.Kim Motoyoshi Kalland2010-06-161-0/+4
| | | | | | | The fill-rule of the original path was not copied into the clipped path. Reviewed-by: Gunnar
* Removed unnecessary lines of code.Kim Motoyoshi Kalland2010-06-161-4/+0
| | | | Reviewed-by: Gunnar
* Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1 into ↵Qt Continuous Integration System2010-06-161-4/+5
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4.7-integration * '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1: (62 commits) Use native locale aware string comparison on Symbian. Temporary fix for regression in QSslCertificate::fromPath() doc: Added more DITA output to the XML generator Fix symbian building of TARGET with a slash Fix a minor typo in QAbstractItemModel's documentation. QXmlSchema: allow usage of xsd:all QSslSocket: fix build for MinGW and VS 2005 Fix symbian-abld build failure with bearer plugins remove certificate bundle make QSslSocket::systemCaCertificates() use system certs Adjusted RegExp in QSslCertificate::fromPath() Fix QSystemTrayIcon::supportsMessages() on Windows Use NIM_SETVERSION to get the latest behavior Cleanup obsolete stuff doc: Added DITA XML generator Fixed a broken merge. Changed the way we detect touch screen on Windows. Fixed error deploying qsymbianbearer.qtplugin on Symbian. Revert "Attempt to fix build failure on Symbian." Attempt to fix build failure on Symbian. ...
| * Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1 into ↵Qt Continuous Integration System2010-06-151-4/+5
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4.7-integration * '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1: (62 commits) Use native locale aware string comparison on Symbian. Temporary fix for regression in QSslCertificate::fromPath() doc: Added more DITA output to the XML generator Fix symbian building of TARGET with a slash Fix a minor typo in QAbstractItemModel's documentation. QXmlSchema: allow usage of xsd:all QSslSocket: fix build for MinGW and VS 2005 Fix symbian-abld build failure with bearer plugins remove certificate bundle make QSslSocket::systemCaCertificates() use system certs Adjusted RegExp in QSslCertificate::fromPath() Fix QSystemTrayIcon::supportsMessages() on Windows Use NIM_SETVERSION to get the latest behavior Cleanup obsolete stuff doc: Added DITA XML generator Fixed a broken merge. Changed the way we detect touch screen on Windows. Fixed error deploying qsymbianbearer.qtplugin on Symbian. Revert "Attempt to fix build failure on Symbian." Attempt to fix build failure on Symbian. ...
| | * Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1 into ↵Qt Continuous Integration System2010-06-121-4/+5
| | |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4.7-integration * '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1: (55 commits) Fix symbian-abld build failure with bearer plugins remove certificate bundle make QSslSocket::systemCaCertificates() use system certs Adjusted RegExp in QSslCertificate::fromPath() Fix QSystemTrayIcon::supportsMessages() on Windows Use NIM_SETVERSION to get the latest behavior Cleanup obsolete stuff doc: Added DITA XML generator Fixed a broken merge. Changed the way we detect touch screen on Windows. Fixed error deploying qsymbianbearer.qtplugin on Symbian. Revert "Attempt to fix build failure on Symbian." Attempt to fix build failure on Symbian. Replaced redundant "!contains" scopes in "contains(A, B) {...} !contains(A, B) {...}" constructions with "else" Updated leading whitespace to make indentation more consistent Updated project files so it is now possible to use "-system-zlib" configuration option on Windows and Symbian platforms. make postgresql support sensitive to PSQL_LIBS support for cross building Qt for MinGW (win32-g++) on Unix use "win32-g++*" scope to match all MinGW makespecs Demos: Fix compilation with namespace. ...
| | | * Updated leading whitespace to make indentation more consistentConstantin Makshin2010-06-101-1/+1
| | | | | | | | | | | | | | | | | | | | Merge-request: 2411 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
| | | * Updated project files so it is now possible to use "-system-zlib" ↵Constantin Makshin2010-06-101-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | configuration option on Windows and Symbian platforms. Improved support of "-system-jpeg" "-system-mng" "-system-png" and "-system-tiff" configuration options on Windows (thanks to Mark Brand <mabrand@mabrand.nl>) Merge-request: 2411 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
| | | * use "win32-g++*" scope to match all MinGW makespecsMark Brand2010-06-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The scope "win32-g++" comes from the name of the makespec. However, it is frequently used to check for MinGW. This works fine as long as win32-g++ is the only makespec for MinGW. Now we need the wildcard to cover "win32-g++-cross" as well. Also reordered test of win32 before win32-g++*. Also took opportunity to use else. Merge-request: 2407 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* | | | Fixed missing stroke for flat ellipses.Samuel Rødal2010-06-153-4/+6
|/ / / | | | | | | | | | | | | | | | | | | The behavior should be the same as for arcs and rects. Task-number: QTBUG-2743 Reviewed-by: Eskil
* | | Fixed error reporting in grayraster and reduced default pool size.Carolina Gomes2010-06-144-22/+35
|/ / | | | | | | | | | | | | Task-number: QTBUG-10471 Merge-request: 642 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* | Optimized 90-, 180-, and 270- rotated blits in raster paint engine.Samuel Rødal2010-06-101-0/+105
| | | | | | | | | | | | | | | | Blitting a 90-degree rotated RGB16 image now takes 40 % of the time it used to on the N900. Task-number: QT-3057 Reviewed-by: Kim
* | LayoutDirectionAuto is the default layout direction for QPainterLars Knoll2010-06-091-5/+7
| | | | | | | | | | | | | | | | | | Don't retrieve the layout direction from QWidget or QApplication anymore. Respect if somebody explicitly sets the direction with setLayoutDirection(). Task-number: Part of QT-3292 Reviewed-by: Simon Hausmann
* | Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2 into ↵Qt Continuous Integration System2010-06-081-1/+1
|\ \ | |/ |/| | | | | | | | | | | | | | | | | | | | | 4.7-integration * '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2: QVarLenghtArray: Add typedefs for stl compatibility. prefer QElapsedTimer over QTime Allow to build Qt in static with mingw Protected call to glXChooseFBConfig with appropriate defines. Use the new OpenGL 3.* context/profile if asked with X11/GLX. Splitted attrib_list generation into buildSpec from QGLContext::tryVisual. Fix QTransform::map(const QPainterPath &) not working with paths that