summaryrefslogtreecommitdiffstats
path: root/src/gui/painting
Commit message (Collapse)AuthorAgeFilesLines
* Small optimization in raster paint engine.Samuel Rødal2010-01-251-2/+2
| | | | | | Don't repeatedly update the pen / brush if no pen / brush is set. Reviewed-by: Gunnar Sletta
* Fix QPainter::redirection() to pass autotest.Gunnar Sletta2010-01-221-3/+2
| | | | Reviewed-by: Trond
* Fix documentation bug in QColorGunnar Sletta2010-01-221-7/+4
|
* Don't use a mutex lock in QPainter::redirection unless strictly requiredGunnar Sletta2010-01-221-3/+36
| | | | Reviewed-by: Trond
* Merge branch '4.6' of git@scm.dev.nokia.troll.no:qt/oslo-staging-2 into 4.6Gunnar Sletta2010-01-20166-190/+209
|\
| * Merge branch '4.6' of scm.dev.nokia.troll.no:qt/qt-s60-public into ↵Qt Continuous Integration System2010-01-151-3/+5
| |\ | | | | | | | | | | | | | | | | | | | | | 4.6-integration * '4.6' of scm.dev.nokia.troll.no:qt/qt-s60-public: Enable surface transparency support on Symbian^4. Improve the behavior of expose events on Symbian.
| | * Merge branch '4.6' of scm.dev.nokia.troll.no:qt/qt-s60-public into ↵Qt Continuous Integration System2010-01-151-3/+5
| | |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4.6-integration * '4.6' of scm.dev.nokia.troll.no:qt/qt-s60-public: Enable surface transparency support on Symbian^4. Improve the behavior of expose events on Symbian.
| | | * Improve the behavior of expose events on Symbian.Jason Barron2010-01-141-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously when an expose was received from WSERV, we simply called BitBlt (for raster) or called flush on the window surface (for anything else). This behavior differs from other platforms which call syncBackingStore(). This difference means that we flush the backing store without actually updating the content first. This works for most cases because if there actually was new content, it would be updated when the widget's UpdateRequest event was handled. The problem arises when the backing store does not have the correct content. This can happen if the backing store was deleted, but only partially restored (see Task below). Another problem is with the OpenVG graphics system which assumes that beginPaint() is called before endPaint() is order to initialize the context and the surface size. The fix is to call syncBackingStore() like the other platforms, but introduce a bit field to prevent infinite recursion in the painting pipeline. Task-number: QTBUG-4921 Reviewed-by: axis Reviewed-by: Gareth Stockwell
| * | | Clarify the docs slightly for QPainter::beginNativePainting().Trond Kjernåsen2010-01-151-6/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some complain that we don't reset every GL state in the GL engine in endNativePainting(). We simply can't do that as it would be a performance bump. The user is responsible for setting states they themselves change in a begin/endNativePainting() block, back to their default state.
| * | | Fixed the encoding of the Tile and Creator tags in the PDF engine.Trond Kjernåsen2010-01-151-8/+18
| |/ / | | | | | | | | | | | | Task-number: QTBUG-7249 Reviewed-by: Kim
| * | Fixes wrong stroke clipping with the raster engine.Yoann Lopes2010-01-141-7/+9
| |/ | | | | | | | | | | | | | | The problem was that the clip rect was only updated when the QPen had changed. Task-number: QTBUG-7253 Reviewed-by: gunnar
| * Merge remote branch 'qt/4.6' into oslo-staging-2/4.6Paul Olav Tvete2010-01-12166-166/+166
| |\ | | | | | | | | | | | | Conflicts: dist/changes-4.6.1
| | * Merge branch '4.6' of scm.dev.nokia.troll.no:qt/oslo-staging-1 into ↵Qt Continuous Integration System2010-01-09166-166/+166
| | |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4.6-integration * '4.6' of scm.dev.nokia.troll.no:qt/oslo-staging-1: (49 commits) Reverted two commits that were pushed to the wrong branch. Use the new QTextCodec api in the QXmlStreamWriter. Added new functions to QTextCodec that accept ConversionFlags. Fix passing of arguments to syncqt doc: Fixed typos. Fixes: Fix spinbox with NoButton style in QGtkStyle doc: Explained parameter value defaults where appropriate. Cocoa: Fix painting errors on QGLWidget resizing. Fix broken QGLWidget::renderPixmap on Mac/Carbon Fixes: Setting any style sheet breaks checkbox positioning Fixes: MenuItem size fixes and missing separator with Gtk+ Autotest: add a test for QNAM's HTTP cache handling code QNAM HTTP: just use the expirationDate in the code that validates the cache QNAM HTTP: change the caching semantics to match documentation QNAM HTTP: fix the caching algorithm from RFC 2616 Avoid repeatedly calling LookupAccountSid in QFSFileEngine::owner improve readability a bit more fix styling; improve readability make it possible to retrieve name of the user who owns the file Updated WebKit from /home/shausman/src/webkit/trunk to qtwebkit/qtwebkit-4.6 ( 99ccc1c3e4db5354246720f9b9aa3d282e64497d ) ...
| | | * Merge branch '4.6' of scm.dev.nokia.troll.no:qt/oslo-staging-1 into ↵Qt Continuous Integration System2010-01-09166-166/+166
| | | |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4.6-integration * '4.6' of scm.dev.nokia.troll.no:qt/oslo-staging-1: (49 commits) Reverted two commits that were pushed to the wrong branch. Use the new QTextCodec api in the QXmlStreamWriter. Added new functions to QTextCodec that accept ConversionFlags. Fix passing of arguments to syncqt doc: Fixed typos. Fixes: Fix spinbox with NoButton style in QGtkStyle doc: Explained parameter value defaults where appropriate. Cocoa: Fix painting errors on QGLWidget resizing. Fix broken QGLWidget::renderPixmap on Mac/Carbon Fixes: Setting any style sheet breaks checkbox positioning Fixes: MenuItem size fixes and missing separator with Gtk+ Autotest: add a test for QNAM's HTTP cache handling code QNAM HTTP: just use the expirationDate in the code that validates the cache QNAM HTTP: change the caching semantics to match documentation QNAM HTTP: fix the caching algorithm from RFC 2616 Avoid repeatedly calling LookupAccountSid in QFSFileEngine::owner improve readability a bit more fix styling; improve readability make it possible to retrieve name of the user who owns the file Updated WebKit from /home/shausman/src/webkit/trunk to qtwebkit/qtwebkit-4.6 ( 99ccc1c3e4db5354246720f9b9aa3d282e64497d ) ...
| | | | * Merge branch '4.6' of scm.dev.nokia.troll.no:qt/oslo-staging-1 into ↵Qt Continuous Integration System2010-01-07166-166/+166
| | | | |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4.6-integration * '4.6' of scm.dev.nokia.troll.no:qt/oslo-staging-1: QIODevice: Fix readAll() Temporary hackiesh solution to prevent BOM in the xml data. Fixed qxmlstream autotest when using shadow builds. Attempt at readding the capital P headers for Phonon Remove special Phonon processing from syncqt. Use the lowercase/shortname.h headers for Phonon includes Fixes a crash when setting focus on a widget with a focus proxy. Update copyright year to 2010 doc: Clarified activeSubControls and subControls. Remove warning "statement with no effect" doc: Clarified that .lnk files are System files on Windows.
| | | | | * Update copyright year to 2010Jason McDonald2010-01-06166-166/+166
| | | | | | | | | | | | | | | | | | | | | | | | Reviewed-by: Trust Me
* | | | | | Text drawing is not fast currentlyGunnar Sletta2010-01-151-3/+0
|/ / / / /
* | | | | Put LinesHint into QVectorPath hints to enable further optimizationsGunnar Sletta2010-01-121-2/+14
| | | | | | | | | | | | | | | | | | | | Reviewed-by: Samuel
* | | | | Avoid coordinate limitations in the raster engine.Gunnar Sletta2010-01-122-4/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Lines that are longer than 2^15 will overflow in qgrayraster.c so we need to clip them. Also, we need to clip the bounding rectangle to avoid an endless clip-loop Task: http://bugreports.qt.nokia.com/browse/QTBUG-6198 Reviewed-by: Samuel
* | | | | Fix point drawing on raster engine for flat and square capsGunnar Sletta2010-01-121-4/+4
|/ / / / | | | | | | | | | | | | | | | | Task: http://bugreports.qt.nokia.com/browse/QTBUG-6721 Reviewed-by: Samuel
* | | | Merge branch '4.6' of scm.dev.nokia.troll.no:qt/oslo-staging-2 into ↵Qt Continuous Integration System2010-01-091-1/+5
|\ \ \ \ | |/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4.6-integration * '4.6' of scm.dev.nokia.troll.no:qt/oslo-staging-2: Doc: the QTextDecoder need to be destroyed, reflect that in the example added CONFIG += console to qlalr.pro Add new benchmark for some qtext features. Add texture glyph width cache default. Update changes file
| * | | Add texture glyph width cache default.Stefano Pironato2010-01-081-1/+5
| |/ / | | | | | | | | | | | | | | | | | | | | | For maemo6 need to increase the cache width to 1024 to avoid text corruption using SGX 1.4. Reviewed-by: Tom Cooksey Reviewed-by: Harald Fernengel
* | | Fix for QTBUG-5870 QGraphicsProxyWidget does not show children onJani Hautakangas2010-01-081-3/+10
|/ / | | | | | | | | | | | | | | | | Symbian. QS60PaintEngine returned wrong device in QPaintEngine::paintDevice(). Task-number: QTBUG-5870 Reviewed-by: Jason Barron
* | Slight performance improvement in comp_func_SourceOver.Samuel Rødal2010-01-041-1/+4
| | | | | | | | | | | | | | We should check for the fully opaque and fully transparent special cases, like we do in the dedicated image blend functions. Reveiewed-by: Gunnar Sletta
* | fixed typo in qpainter docsGunnar Sletta2010-01-041-1/+1
|/
* Fix build with neon instructions enabled but not set in mkspecTom Cooksey2009-12-221-1/+1
| | | | Reviewed-By: Samuel Rødal
* NEON configure detection and initial blend function implementations.Samuel Rødal2009-12-185-3/+358
| | | | | | | | | | | | | | | | Adds new NEON configure test and -no-neon configure option. NEON implementations can also be turned off by setting the QT_NO_NEON environment variable. Performance improvements (in frames per second): - Blending ARGB32 on RGB32/ARGB32, mostly opaque: 71 % - Blending ARGB32 on RGB32/ARGB32, no opaque pixels: 108 % - Blending ARGB32 on RGB32/ARGB32, with 0.5 opacity: 158 % - Blending RGB32 on RGB32/ARGB32, with 0.5 opacity: 189 % Task-number: QTBUG-6684 Reviewed-by: Gunnar Sletta Reviewed-by: Paul Olav Tvete
* Merge branch '4.6' of scm.dev.nokia.troll.no:qt/qt-s60-public into ↵Qt Continuous Integration System2009-12-165-22/+24
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4.6-integration * '4.6' of scm.dev.nokia.troll.no:qt/qt-s60-public: (31 commits) Fixed qstylesheetstyle benchmark for Symbian Fixed qdiriterator benchmark for Symbian Fixed events benchmark postEvent function Fix for QTBUG-4908 SVG transparency rendering problem. Long informative texts causes messagebox to grow outside of screen area qreal-ization qreal-ization qreal-ization QS60Style: Remove layouts with mirrored information Fixed qgraphicsview autotest build for winscw. Enabled input method update code for all platforms. (ODBC) Fixes segfault when error string is larger than 256 chars. Fixed QGraphicsView benchmark for Symbian. FEP indicator shown in status pane when it should not Skipped the most memory intensive tests in QByteArray benchmark. qreal-ization qreal-ization QS60Style: Theme graphics for QSlider in 3.1 QS60Style: Groove changes caused build break of S60 3.1 Slow spinbox on N95 when using keys Up/Down ...
| * Fix for QTBUG-4908 SVG transparency rendering problem.Jani Hautakangas2009-12-161-3/+5
| | | | | | | | | | | | | | | | QPixmap::copy discarded alpha channel. This fix also removes usage of member variables CFbsBitGc and CFbsBitmapDevice. Now those are used only in function scope. Reviewed-by: Sami Merila
| * Merge branch '4.6' of git@scm.dev.nokia.troll.no:qt/qt into 4.6-s60axis2009-12-168-29/+122
| |\ | | | | | | | | | | | | Conflicts: src/s60installs/bwins/QtGuiu.def
| * | qreal-izationAleksandar Sasha Babic2009-12-154-19/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | Using math wrapper functions instead direct call. This gives us top-level control to what (single/double) precision we are effectively using. Task-number: QTBUG-4894 Reviewed-by: janarve Reviewed-by: Kim Motoyoshi Kalland
* | | Optimized blur / drop shadow effects for the GL 2 paint engine.Samuel Rødal2009-12-142-0/+23
| |/ |/| | | | | | | | | | | | | | | Do the blur in half the resolution in software and then upload the result as a texture and smooth-scale it on the GPU. This leads to stable and decent performance regardless of the blur radius, and simplifies the implementation quite a bit. Reviewed-by: Bjørn Erik Nilsen
* | Determine QPrinterInfo's supportedPaperSizes on demand.David Faure2009-12-141-21/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The paper size determination requires a cupsGetPPD(), which can be a slow HTTP download. So doing it on demand makes QPrinterInfo::defaultPrinter() much faster, because it doesn't actually need the paper sizes at all. Before this fix, it was requesting the PPD file of every known CUPS printer, every time it was called. My battery of unittests for code that uses QPrinter went from 19 minutes when the cups print server is switched off, to 13 seconds! This fix also removes some code duplication, which is always nice. Task-number: 232664, QTBUG-3033 Reviewed-by: Trond
* | Added vg to the performance section of the QPainter docsGunnar Sletta2009-12-141-0/+6
| |
* | Fixed spelling in docsGunnar Sletta2009-12-141-6/+6
| |
* | Merge branch '4.6' of scm.dev.nokia.troll.no:qt/oslo-staging-2 into 4.6Gunnar Sletta2009-12-116-8/+9
|\ \
| * | Clean up the QFontEngine glyphcaching code to not crash and be more tidyGunnar Sletta2009-12-101-2/+2
| | | | | | | | | | | | Reviewed-by: Eskil
| * | Merge branch '4.6' of git@scm.dev.nokia.troll.no:qt/oslo-staging-2 into 4.6Gunnar Sletta2009-12-093-0/+6
| |\ \
| | * | Compile with QT_NO_DEPRECATEDOlivier Goffart2009-12-093-0/+6
| | |/ | | | | | | | | | | | | | | | | | | uses of QT_DEPRECATED must be protected by #ifdef Task-number: QTBUG-6649 Reviewed-by: João Abecasis
| * | Fix crash when rotating cleartype text under gl engine.Gunnar Sletta2009-12-091-4/+1
| | | | | | | | | | | | Reviewed-by: Eskil
| * | Don't assert on valid math in qbezierGunnar Sletta2009-12-091-2/+0
| |/
* | Initial documentation for the performance characteristics of QPainter.Gunnar Sletta2009-12-111-0/+78
|/ | | | Reviewed-by: Tom
* Fix possible off-by-one inconsistency against system look and feel whenEskil Abrahamsen Blomfeldt2009-12-081-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | drawing vertically aligned text When text is drawn in a font which has an odd-numbered height and it's vertically aligned in a rectangle which has an even-numbered height (or vice versa) we have to round the y-position, as the backend cannot position the text in subpixels. The y-position in this case will be at half a pixel and we can either round it up or down without increasing the size of the error. In Qt 4.5, the font height would be reported as one higher than what it actually was. Therefore, in many widgets such as comboboxes, we would appear to round the y-position down when faced with this issue. This is apparently also what Windows does, probably because most latin fonts have more glyphs extending into the maximum descent than the ascent. In Qt 4.6, the font height bug was fixed, and since we use qRound() we now round half-pixels up, thus moving all the text faced with this issue one pixel down. This looks odd and inconsistent, both with the platform look and feel and with older versions of Qt. The patch reverts to the old look and feel by rounding the half pixels down rather than up for the particular case in question. Task-number: QTBUG-6578 Reviewed-by: Samuel
* Merge commit 'c0b81480b2909b18ac15bdd124a562ae005c2f41' into origin-4.6Olivier Goffart2009-12-041-1/+1
|\
| * Fixes transformation problems with QGraphicsProxyWidget.Yoann Lopes2009-12-021-1/+1
| | | | | | | | | | | | | | | | | | In the paintEvent of the widget used in a QGraphicsProxyWidget, the worldMatrix was wrongly used by the painter instead of the deviceMatrix. Similar problem in the WindowsXP Style, the worldMatrix was used instead of the deviceMatrix for determining if the widget is transformed (reviewed by eblomfel). Task-number: QTBUG-5939 Reviewed-by: bnilsen Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
* | Merge remote branch 'mainline/4.6' into 4.6Oswald Buddenhagen2009-12-033-7/+25
|\ \ | |/
| * Merge commit 'oslo-staging-2/4.6' into upstream/4.6Olivier Goffart2009-12-023-7/+25
| |\
| | * Added caching of vectorpaths to the GL paint engine.Gunnar Sletta2009-12-012-6/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The first time a path is drawn we call makeCachable on the path, which means that if it is drawn again, we start caching it. This is a bit of a trick to avoid caching paths that are drawn once and discared while at the same time cache paths that are reused automatically. The GL engine owns the vertex information and is responsible for cleaning it up. If the vectorpath is destroyed first, it will call the cleanup function. if the engine dies first, we still require some hooks to clean up the cache in the path. More to come. When VBO's are used, these will be a leaked if the path is destroyed after the engine. Reviewed-by: Samuel
| | * Fixed square root of negative number in drawTextItem().Kim Motoyoshi Kalland2009-11-301-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | Fixed potential bug where you could end up taking the square root of a negative number in drawTextItem() in the raster and OpenGL paint engines. Task-number: QTBUG-6327 Reviewed-by: Trond
* | | Fix a documentation typo.Christian Kamm2009-11-301-1/+1
|/ / | | | | | | Reviewed-by: Samuel Rødal