summaryrefslogtreecommitdiffstats
path: root/src/gui/painting
Commit message (Collapse)AuthorAgeFilesLines
* Added QPainter::clipBoundingRect() which is significantly fasterGunnar Sletta2010-08-092-0/+57
| | | | | | | than QPainter::clipRegion().boundingRect(). Task: http://bugreports.qt.nokia.com/browse/QTBUG-12618 Reviewed-by: Kim
* Remove the use of deprecated qVariant*Olivier Goffart2010-08-061-22/+22
| | | | | | | | | | | | | | | Test directory untouched. This just apply those regexp: git grep -O"sed -i 's/qVariantValue</qvariant_cast</'" qVariantValue git grep -O"sed -i 's/qVariantSetValue(\([^&*\(),]*\), */\\1.setValue(/'" qVariantSetValue git grep -O"sed -i 's/qVariantSetValue *<\([^>]*\)> *(\([^&*\(),]*\), */\\2.setValue<\\1>(/'" qVariantSetValue git grep -O"sed -i 's/qVariantCanConvert *<\([^>]*\)> *(\([^&*\(),]*\))/\\2.canConvert<\\1>()/g'" qVariantCanConvert git grep -O"sed -i 's/qVariantCanConvert *<\([^>]*\)> *(\([^&*\(),]*([^&*\(),]*)\))/\\2.canConvert<\\1>()/g'" qVariantCanConvert git grep -O"sed -i 's/qVariantFromValue\( *[(<]\)/QVariant::fromValue\\1/'" qVariantFromValue git checkout src/corelib/kernal/qvariant* Rev-by: dev mailing list
* Merge remote branch 'origin/4.7' into qt-master-from-4.7Olivier Goffart2010-07-2810-91/+323
|\ | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/gui/kernel/qapplication.cpp tests/auto/qfileinfo/tst_qfileinfo.cpp tools/qdoc3/test/assistant.qdocconf tools/qdoc3/test/designer.qdocconf tools/qdoc3/test/linguist.qdocconf tools/qdoc3/test/qmake.qdocconf tools/qdoc3/test/qt-build-docs.qdocconf tools/qdoc3/test/qt.qdocconf
| * Remove an useless assert from comp_func_SourceOver_sse2()Benjamin Poulain2010-07-271-1/+0
| | | | | | | | | | | | | | The assert can never be true since const_alpha is unsigned. That line was triggering a warning on GCC. Reviewed-by: Olivier Goffart
| * Implement the composition mode "Plus" with SSE2Benjamin Poulain2010-07-273-5/+74
| | | | | | | | | | | | | | | | | | | | | | Implement the composition function for CompositionMode_Plus with SSE2. The macro MIX() can be replaced by a single instruction add-saturate, which increase the speed a lot (13 times faster on the blend benchmark). Reviewed-by: Olivier Goffart Reviewed-by: Andreas Kling
| * Clean the CompositionFunction tables of drawhelperBenjamin Poulain2010-07-277-77/+208
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some instructions sets were defining partial table of composition functions. To work around that, qInitDrawhelperAsm() was resetting the composition function of QPainter::CompositionMode_Destination and anything above QPainter::CompositionMode_Xor. This was a problem because it makes it impossible to implement fast path for those composition mode. This patch export prototypes for the generic functions of each composition mode. The specialized implementations now define a complete table. Reviewed-by: Andreas Kling
| * 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
* | Fix the CGContext on Mac OS X. Sometimes we gotFabien Freling2010-07-221-12/+4
| | | | | | | | | | | | | | | | a bad context, resulting in wrong paintings. It also unify the raster engine behavior among platforms. Reviewed-by: Jason Barron
* | Merge remote branch 'origin/master' into qt-master-from-4.7Thiago Macieira2010-07-152-15/+61
|\ \ | | | | | | | | | | | | Conflicts: src/opengl/qgl_p.h
| * | Support glyphs that are wider than default width in texture glyph cacheEskil Abrahamsen Blomfeldt2010-07-151-2/+6
| | | | | | | | | | | | | | | | | | We need to reserve space for the widest possible glyph in the font Reviewed-by: Kim
| * | Support text decoration in QPainter::drawGlyphs()Eskil Abrahamsen Blomfeldt2010-07-141-13/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In order to support text decorations (overline, underline and strikeout) in QPainter::drawGlyphs(), we need to call drawTextItemDecoration() from this function. To support this, it has been generalized to no longer require a QTextItemInt. We also need to propagate the decoration attributes of the font from QTextLayout to QGlyphs, since this is not part of the QFontEngine. Task-number: QTBUG-12122 Reviewed-by: Kim
* | | Merge remote branch 'origin/4.7' into qt-master-from-4.7Thiago Macieira2010-07-1517-363/+702
|\ \ \ | |/ / |/| / | |/ | | Conflicts: src/gui/kernel/qapplication.h
| * 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 'master' of scm.dev.nokia.troll.no:qt/oslo-staging-2 into ↵Qt Continuous Integration System2010-07-061-6/+10
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | master-integration * 'master' of scm.dev.nokia.troll.no:qt/oslo-staging-2: (24 commits) QGLPixelBuffer should not rely on temporary QGLWidgets. Initialize pex. Remove warning. Fix the tests for the internal GL resource system. Rework how QGLTextureGlyphCache makes use of the resource system. The group pointer should no longer be a part of the 64 bit int. Enable glyph uploads from a thread in the X11 font engine. Make qt_pixmap_serial thread-safe. Clean up debug output. Clarification regarding the WA_X11InitThreads flag. Rework the internal GL resource system yet again. Check Qt::AA_X11InitThreads to determine pixmap usage in threads. Add an application attribute to control XInitThreads(). Unnecessary alloc + remove unused headers. QGLPixelBuffer should manage its own paint engines. Remove the DDS texture cache. Make the GL texture cache share textures between shared contexts. Redesigned how GL resource management works. Don't use the QGLSignalProxy to clean up the thread-local shaders. Simplify how the QGLEngineSharedShaders object is cleaned up. ...
| * | | QGLPixelBuffer should not rely on temporary QGLWidgets.Trond Kjernåsen2010-07-051-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use QGLTemporaryContext instead. Also, to re-use already registered window classes for the temporary native window, make qt_reg_wndclass() register a QWidget default class if it's passed a 0 pointer. Reviewed-by: Gunnar
| * | | Check Qt::AA_X11InitThreads to determine pixmap usage in threads.Trond Kjernåsen2010-07-021-6/+7
| | | |
| * | | More work on GL threading.Trond Kjernåsen2010-07-021-4/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Removed QObject inheritance from QGLEngineSharedShaders and made it thread-local, so that paintengines in different threads can use programs without clashing. Lifted some restrictions on QPixmap so that they may be used in threads when the GL2 engine is active. Made the QGLContextGroup a part of the pixmap and image cache keys.
* | | | Merge remote branch 'origin/4.7' into qt-master-from-4.7Thiago Macieira2010-07-0115-124/+212
|\ \ \ \ | |/ / / |/| / / | |/ / | | | | | | | | | | | | | | | Conflicts: bin/syncqt src/gui/text/qtextlayout.cpp tools/assistant/tools/assistant/helpviewer_qwv.cpp tools/assistant/tools/assistant/helpviewer_qwv.h tools/configure/configureapp.cpp
| * | 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