summaryrefslogtreecommitdiffstats
path: root/src/gui/painting/qcosmeticstroker.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Make QPen default to 1-width non-cosmetic.Samuel Rødal2012-10-221-1/+1
| | | | | | | | | | | Use the Qt4CompatiblePainting render hint when painting with QPainter to treat default constructed QPens as cosmetic still. The NonCosmeticDefaultPen render hint gets documented as obsolete, since it was in any case not respected by the raster nor OpenGL paint engine. Change-Id: I04d910e9700baf7f13a8aac07a3633014bb9283e Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
* Fixed inconsistent QPainter fill rules for aliased painting.Samuel Rødal2012-10-191-2/+2
| | | | | | | | | | | | | | | | | | | | | | Qt 5 is the time to get rid of all the old inconsistencies in the raster paint engine caused by trying to preserve the old X11 based coordinate system where (0, 0) is in the center of the top-left pixel instead of the upper left corner of said pixel. However, this was only adhered for line drawing and path / rect filling, and not for image or pixmap drawing and not at all when doing antialiased painting. By defining the antialiased coordinate system as being the right one and letting the aliased fill rules follow from that we finally end up with some consistent behavior that doesn't lead to surprises and workarounds in application code. It is still possible for applications to get the old behavior by setting the QPainter::Qt4CompatiblePainting render hint. This should make porting easier for the few cases where an application relies on the aliased fill rules we used to have in Qt 4. Task-number: QTBUG-27500 Change-Id: If86b95e77d838ec83033d64af86632b9a73c74a9 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Fixed cosmetic line drawing where begin and end points are equal.Samuel Rødal2012-10-111-0/+5
| | | | | | | | | This case has typically required specific work-arounds in other rendering paths as well. Task-number: QTBUG-25153 Change-Id: I217e710a30222792ebca3bf297e438d944c32992 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Change copyrights from Nokia to DigiaIikka Eklund2012-09-221-24/+24
| | | | | | | | Change copyrights and license headers from Nokia to Digia Change-Id: If1cc974286d29fd01ec6c19dd4719a67f4c3f00e Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
* Fixed inconsistent rounding of square cap pens.Samuel Rødal2012-09-201-10/+10
| | | | | | | | | | | A horizontal line should round up at the same time as a vertical line with square cap, when rendering at subpixel coordinates. Thus, the special casing in the cosmetic stroker of offsetting by half a pixel should be for flat caps instead of for square caps. Task-number: QTBUG-26013 Change-Id: Ic09249337f814c7de95a17976ec9e651561a744b Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Remove "All rights reserved" line from license headers.Jason McDonald2012-01-301-1/+1
| | | | | | | | | | As in the past, to avoid rewriting various autotests that contain line-number information, an extra blank line has been inserted at the end of the license text to ensure that this commit does not change the total number of lines in the license header. Change-Id: I311e001373776812699d6efc045b5f742890c689 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Update contact information in license headers.Jason McDonald2012-01-231-1/+1
| | | | | | | Replace Nokia contact email address with Qt Project website. Change-Id: I431bbbf76d7c27d8b502f87947675c116994c415 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Update copyright year in license headers.Jason McDonald2012-01-051-1/+1
| | | | | Change-Id: I02f2c620296fcd91d4967d58767ea33fc4e1e7dc Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Revert "Fix use of qMax() with floating point constants"Sergio Ahumada2011-11-011-2/+2
| | | | | | | This reverts commit 4e1b8720c1498edbb7a5bd37f622fdd3feb07850 Change-Id: I5e52a86119b522888b69fa261ebfa9168f885864 Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
* Fix use of qMax() with floating point constantsSergio Ahumada2011-10-301-2/+2
| | | | | | | | When passing floating point constants make sure to cast them as qreal's. Change-Id: I17e7ee407ac4f92ce947f6a384aa4d64edb8e983 Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Fix compiler warnings.Friedemann Kleint2011-10-271-1/+0
| | | | | | | | - Fix gcc 4.6.X warnings about assigned but unused variables - Remove trailing ';' from inline functions (Clang) Change-Id: I8670afd6b149748a740f22c65de137762e9f18e1 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Correctly position aliased lines with flat capsLars Knoll2011-08-311-24/+26
| | | | | | | | | | | | | | | | | | | The code was mispositioning lines by half a pixel, as it added half a pixel offset and then rounded in addition. This submit fixes this and also removes certain artifacts when drawing rects at .5 pixel positions. Lance now doesn't show any significant differences to the 4.7 rendering anymore. Task-number: QTBUG-20199 Reviewed-by: Aavit (cherry picked from commit 49409f612c47f30434aa809e4d2c963f1a6bb88a) Change-Id: Iab3936e688eba16b82f5cdb4f36f54af807d78ea Reviewed-on: http://codereview.qt.nokia.com/3260 Reviewed-by: Lars Knoll <lars.knoll@nokia.com> Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
* Update licenseheader text in source files for qtbase Qt moduleJyri Tahtela2011-07-071-17/+17
| | | | | | | | | Replace old license header with correct one. Change-Id: Ie8bf7d8d07ff01d05654bafe13ebbc1892f59cc4 Reviewed-on: http://codereview.qt.nokia.com/1178 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com> Reviewed-by: Jyri Tahtela <jyri.tahtela@nokia.com>
* Fix problem with cosmetic stroking of cubic beziersaavit2011-06-271-2/+2
| | | | | | | | | | The new algorithm would fail if the start and end point were identical. (cherry picked from commit 43ce5bab32e0d28366317be99df5e6df70787826) Change-Id: I44c42b190db95b831fd04492e4afe3555fb3db50 Reviewed-on: http://codereview.qt.nokia.com/610 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Fix smaller bugs in the strokerLars Knoll2011-06-271-7/+14
| | | | | | | | | | | | Calculating the continuation point for closed contours was not taking transformations and the half pixel offset into account. (cherry picked from commit 31e9c098f3c9321eebf1ac3e4c44a2d18d3816b8) Change-Id: I735d8e58fc3cf64668f546d5f42892d420d58e84 Reviewed-on: http://codereview.qt.nokia.com/607 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* fix autotest regressions introduced by 37c329a3Lars Knoll2011-06-221-0/+45
| | | | | | | | | | | Add proper license headers and properly clip pixel drawing to the devices bounding rect. (cherry picked from commit 67d275542464c794ec4b650f10cca9a17e10c977) Change-Id: I52a166919e87e07168fa5f597b22398a1abefe14 Reviewed-on: http://codereview.qt.nokia.com/590 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* fix compilation with namespacesLars Knoll2011-05-121-8/+8
| | | | | Reviewed-by: Bjørn Erik Nilsen (cherry picked from commit 7a1c29f101b95c9cc2cb53f8b80d231b5a994a9a)
* Fix compilation with namespaces enabledLars Knoll2011-05-121-0/+4
| | | | | Reviewed-by: Samuel Rødal (cherry picked from commit bff68fc7094a50af57f7da23ecf9b25cab00f188)
* New algorithm for drawing thin linesLars Knoll2011-05-121-0/+954
Added a new QCosmeticStroker class for drawing thin lines. The class can handle both aliased and antialiased lines. The code replaces all the midpoint line drawing algorithms in the raster paintengine and gives correct subpixel positioning for lines. It gives around 30% to 50% speedup against the midpoint algorithm. If we missed that fast path, the speedup is around between a factor of 6 to 8 for lines and aliased paths and 100 and 400 for antialiased paths. Reviewed-by: Kim (cherry picked from commit 37c329a3e35fabc88fbcad824a69f37c671d2132)