| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
| |
We had to leave the non-const operator== for binary compatibility.
Remove them all, just leave the const version in there. 100% source
compatible.
Change-Id: Ib7a70fb441fe51d5164d9cbf495cbeda0f48fafe
Reviewed-on: http://codereview.qt.nokia.com/2773
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Robert Griebl <robert.griebl@nokia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QBezier::pointAt() could potentially return values outside the bezier's
bounds, even when the bezier was a straight horizontal line. For
example, with y = 0.5, it would produce y=0.5 or y=0.49999999999999 for
different values of t, which when rounded cause jittering in a QML
PathView.
Task-number: QTBUG-17007
Task-number: QTBUG-18133
Cherry-pick-of: 8b66982ec7b4b5d2071931c288973dce73dc9875
Change-Id: I4ecac7b9085aaaaaaaaaaaaaaaaaaaaaa7d7b0bc
Reviewed-on: http://codereview.qt.nokia.com/2467
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Putting the logic inside supportsTransformation() is a bit confusing and
that name is misleading.
Also move the same check in GL2 paint engine to the same place.
Change-Id: I182500a0ff375122e6be966b7ce2495c84d113d0
Reviewed-on: http://codereview.qt.nokia.com/2096
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Partially revert change a33ef62469fd71bec for the non-extended paint
engine path.
Task-number: QTBUG-19525
Reviewed-by: Andy Shaw
(cherry picked from commit f370dd07560c449ba17d13475721f7d3b46e6b24)
Change-Id: I19eaaa265a54b2df65a8ec73e36fbdf58b1a4334
Reviewed-on: http://codereview.qt.nokia.com/1211
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
That macro is a nightmare. It leads to writing code that is
thread-unsafe or other problems. So rewrite the code that used this
macro to use special-purpose classes with constructors.
This commit does not introduce new errors. The FIXME in qicon.cpp
(qtIconCache()) was a condition already present. It does fix the race
conditions that were present in qbrush.cpp nullBrushInstance() and
qfontengine.cpp qt_grayPalette().
Specialising QGlobalStatic is also evil.
Change-Id: I039311f6a5ac9ea4ad7b310b870a2adf888da7e5
Merge-request: 10
Reviewed-by: Olivier Goffart <olivier.goffart@nokia.com>
Reviewed-on: http://codereview.qt.nokia.com/1895
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since Lion, Core Text starts to return fractional values for
x origin in the glyph bounding box. To get correct alignment
we need to make it integer, it seems that round will cut certain
pixels (x = 0.6 will be round to 1, then that glyph will be moved
too much to the left in image glyph cache). Reverting 4297b85a
appears to work fine on previous version of Mac OS X as well.
This change will not affect Windows (DirectWrite) and FreeType
font engines since they both return integer values for that.
Change-Id: I830f5b0bd27cad3a3a84b157da428134fb979703
Reviewed-by: Eskil
Reviewed-on: http://codereview.qt.nokia.com/1667
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
|
|
|
|
|
|
|
| |
Change-Id: I431184cd0534c86047706fdaa1045b2935de5d7a
Reviewed-on: http://codereview.qt.nokia.com/1307
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: David Boddie
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If the fallback font is used for part of a RTL text, we need to
position the different text items accordingly, subtracting the advance
instead of adding it.
Task-number: QTBUG-17117
Done-with: Lars
(cherry picked from commit e5e1ff0d6f4e6a8457da61b5b215730de6f960bd)
Change-Id: I73b501d36e5c9e12112cc1997c1d360f3a4a6083
Reviewed-on: http://codereview.qt.nokia.com/1228
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
|
|
|
|
|
|
|
| |
Change-Id: I7aa52785979df9eddd7b91e62abd0ef10adc74b7
Reviewed-on: http://codereview.qt.nokia.com/1031
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: David Boddie
|
|
|
|
|
|
|
| |
Change-Id: Ib50600ff9fd3d807b82a152abd7d587196d5b5e3
Reviewed-on: http://codereview.qt.nokia.com/932
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: David Boddie
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(cherry picked from commit 0a9652c93170ab9520869e9e231eba1834b47abc)
Conflicts:
tests/auto/mediaobject/tst_mediaobject.cpp
tests/auto/q3accel/tst_q3accel.cpp
tests/auto/q3checklistitem/tst_q3checklistitem.cpp
tests/auto/q3dns/tst_q3dns.cpp
tests/auto/q3popupmenu/tst_q3popupmenu.cpp
tools/linguist/tests/tst_lupdate.cpp
Change-Id: I118829afb27ab082f9656139102f74f9ab5f7ac4
Reviewed-on: http://codereview.qt.nokia.com/1035
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
Reviewed-by: David Boddie
|
|
|
|
|
|
|
| |
Change-Id: I63e906e78de75466b9c9bf99d553691c8335f9b2
Reviewed-on: http://codereview.qt.nokia.com/903
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Kevin Wright <kevin.wright@nokia.com>
|
|
|
|
|
|
|
| |
Change-Id: I7b4e9ef513b82a82d2365c9256d09520a44ad10d
Reviewed-on: http://codereview.qt.nokia.com/324
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
|
|
|
|
|
|
|
| |
Change-Id: I5413cb5e2cbb53998bb40f27b9bbc16342caafe6
Reviewed-on: http://codereview.qt.nokia.com/837
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
|
|
|
|
|
|
|
| |
Change-Id: Ic048be26cd4ffe1094e4badd34a0df233aa9b5d5
Reviewed-on: http://codereview.qt.nokia.com/832
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
|
|
|
|
|
|
|
|
|
|
| |
Because of the merge of demos and examples all references to all demos
have to be updated. This is the update for the affine example.
Change-Id: I83f24010162a73e11786587365c6f10b51d4bf4b
Reviewed-on: http://codereview.qt.nokia.com/774
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: David Boddie
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
37c329a removed this, but it is required to get correct fills,
particularly for small radii
Reviewed-by: gunnar
(cherry picked from commit 9d0104d3da01e262d2178c864b4ba94f620eaa3b)
Change-Id: I41a5093f3cf725aee3abffde4d871566f0f8151e
Reviewed-on: http://codereview.qt.nokia.com/608
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
| |
(cherry picked from commit 7cfd06ee22a875d7658ce6668b418e6f8c6f6480)
Change-Id: Iaaed01590874fbcc439f06c17a63f0343d49a9bb
Reviewed-on: http://codereview.qt.nokia.com/605
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit 69fc9e594e6d5da87bff42707973683f84b67c93.
Conflicts:
src/gui/painting/qpaintengine_raster.cpp
src/gui/painting/qrasterizer.cpp
(cherry picked from commit f8e85838c5531b56c2175cbdb9c24db426f7fd89)
Change-Id: I4f936404000e6fa88887d0fbe3fbde92c8edd259
Reviewed-on: http://codereview.qt.nokia.com/603
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
Change-Id: I8330295761a4440afd81c121039237fb651d9a9c
Reviewed-on: http://codereview.qt.nokia.com/487
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Adding the fallback to QPainterPath for large QStaticTexts created a
regression where all text would be painted in black regardless of the
color you set on it. The color in QStaticTextItem is sometimes invalid,
in which case the current painter color should be used. In either case,
the color is already set on the current pen when entering
drawStaticTextItem() so we can just use that.
Task-number: QTBUG-19950
Reviewed-by: Jiang Jiang
(cherry picked from commit ee77ee5c25f58271e6f2863225d08573da86c3ee)
Change-Id: I955aa6526e5b14589430f8dccd006a9de9ae08c9
Reviewed-on: http://codereview.qt.nokia.com/491
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
To provide an optimized way of constructing QGlyphRun objects with no
copying or allocation, we add function setRawData() (naming inspired by
QByteArray::setRawData()). Data retrieved from QRawFont can be passed
directly into this. The logic is now that the data pointers in
QGlyphRunPrivate should always point to the current valid data and is
what will be used in comparisons and drawing calls. The vectors are
optimizations to avoid unnecessary copying if the user wants to use
the QVector based API (which makes it easier to manage the memory.)
This reflected in the functions that return QVectors, which will
return the stored vector if and only if it is identical to the
current pointer. Otherwise we will have to copy the memory.
The internal addition operators in QGlyphRun have been removed since
they really provide no real optimization and have an unclear definition
if the two glyph runs are based on different fonts.
Reviewed-by: Jiang Jiang
(cherry picked from commit 86d88c5b719fd3d50336d9d8e7127b8045ee82ae)
Change-Id: Id5bb55ee3d93afb32ffca850f53382e856df7b3e
Reviewed-on: http://codereview.qt.nokia.com/342
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
|
|
|
|
|
|
|
| |
Change-Id: Ieafe2cefe0dcb00a3b22133506fb854428abff5e
Reviewed-on: http://codereview.qt.nokia.com/320
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Move paintEngineSupportsTransformations logic from QPainter to paint
engine subclasses. Simplify and consolidate checks for cached drawing
(pretransformed) and path drawing (untransformed) in raster paint
engine. Fix unnecessary transform when paint engines actually take
the path drawing track. Fix scaling and rotation transform in raster
engine for Mac.
Task-number: QTBUG-19086
Change-Id: I1c0c1800a5173d3db765b9fccfd0e7a3628e3815
Reviewed-on: http://codereview.qt.nokia.com/298
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
|
|
|
|
|
|
|
| |
Updated version of LGPL and FDL licenseheaders.
Apply release phase licenseheaders for all source files.
Reviewed-by: Trust Me
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
This warning is pointless as the user can anyway check if the color is
valid after making the call by calling isValid(). Using isValidColor()
could be used but it has a big performance overhead as validation then
needs to be done twice.
Task-number: QTBUG-19098
Reviewed-by: Erik Verbruggen
(cherry picked from commit a423ff5474b89028eeca95b254f5184311c8223b)
|
|
|
|
|
|
|
|
| |
We need to use the quad-word intrinsic and reinterpret the cast to
a signed int vector.
Reviewed-by: Kim Motoyoshi Kalland <kim.kalland@nokia.com>
(cherry picked from commit d2d7aef223a3bad368c6b7c7f7f4617f4acf323c)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QStaticText had an implicit risk which meant you had to make sure the
text size did not grow unreasonably large. This was intended to avoid
hiding the performance impact of using QStaticText for such a purpose,
but it's too inconvenient. Thus, the same fall back as in drawTextItem()
has been introduced. This will also fix a bug recently introduced when
we started using the FT cache to draw static text in the raster engine,
since this will fail for large fonts.
Task-number: QTBUG-19084, QTBUG-19370
Reviewed-by: Jiang Jiang
(cherry picked from commit 0aa9b30432cec3b7f366983f451fc9a7f8f83243)
|
|
|
|
|
| |
Reviewed-by: Bjørn Erik Nilsen
(cherry picked from commit 7a1c29f101b95c9cc2cb53f8b80d231b5a994a9a)
|
|
|
|
|
| |
Reviewed-by: Samuel Rødal
(cherry picked from commit bff68fc7094a50af57f7da23ecf9b25cab00f188)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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)
|
|
|
|
|
|
|
|
| |
Regression from 4.5 causing performance and size degradation.
Task-number: QTBUG-18997
Reviewed-by: Samuel
(cherry picked from commit 18122b473ecbd85ba953f70743b1756358bf7c0c)
|
|
|
|
|
|
|
|
| |
Clamp to GRADIENT_COLOR_TABLE-1, not GRADIENT_COLOR_TABLE-2. Fixes
visible error in gradients.qps
Reviewed-by: Kim Motoyoshi Kalland <kim.kalland@nokia.com>
(cherry picked from commit af9d20680c91f587f4791aa68f3a8b03d3a42be0)
|
|
|
|
|
| |
Reviewed-by: Samuel
(cherry picked from commit ddd253e14318af45e5c56df736028b88257068c4)
|
|
|
|
|
|
|
|
| |
Apparently direct casting is illegal there too, even though they don't
have the cast operators.
Reviewed-by: Kim
(cherry picked from commit 45c60ceac3d5a401543d7d56a44d1f9227464431)
|
|
|
|
| |
(cherry picked from commit 7f921ea08c296e7451a44a1dae15350ae183ea20)
|
|
|
|
| |
(cherry picked from commit 7cc4ffce36c24596630ca83cd6418869d6383670)
|
|
|
|
|
|
|
|
|
| |
The extended radial gradients conform to the radial gradient
specification in HTML 5 canvas.
Task-number: QTBUG-14075
Reviewed-by: Andreas Kling
(cherry picked from commit da55c1ea92474e989e5582b02815936bbf584405)
|
|
|
|
|
|
|
|
|
| |
Two stops is a fairly common case so we gain quite a bit by special
casing it. Improves performance by 10 % in parcycle benchmark, and
by 90 % in a synthetic benchmark.
Reviewed-by: Andreas Kling
(cherry picked from commit 5b74a70ac630073582be56f8a0539624a1080185)
|
|
|
|
|
|
|
|
| |
On an i7 this improves performance by 22 % in parcycle, 107 % in default
svgviewer example, and 283 % in a synthetic radial gradient benchmark.
Reviewed-by: Andreas Kling
(cherry picked from commit 26bd3dccdee8c6a8f1cf9d254a2a6be7d403aa8d)
|
|
|
|
|
|
|
|
| |
Using GRADIENT_STOPTABLE_SIZE * 2 as the modulo gives more correct
behaviour, and also improves performance slightly.
Reviewed-by: Benjamin Poulain
(cherry picked from commit 44dd7ef86a3970694a4f8fd9516575c0533a336e)
|
|
|
|
|
|
|
|
| |
Made the radial gradient fetch func into a template to be able to
optimize the inner loop using SIMD instructions.
Reviewed-by: Benjamin Poulain
(cherry picked from commit f16c261348193b4c03f796db4e1e3a5db09267a2)
|
|
|
|
|
|
|
|
|
|
|
| |
API clean-up for QGlyphRun:
1. QGlyphs -> QGlyphRun
2. QGlyphRun's font()/setFont() -> rawFont()/setRawFont()
3. QPainter::drawGlyphs() -> drawGlyphRun()
4. QTextLayout and QTextFragment's glyphs() -> glyphRuns()
Reviewed-by: Jiang Jiang
(cherry picked from commit 84ef364302728b68d2d29ea9c4ccbec32c7bb115)
|
|
|
|
|
|
|
|
|
| |
This document is aimed for developers. This is why
it is directly written in the header file. This is
not part of the public API.
Reviewed-by: Richard Moe Gustavsen
(cherry picked from commit 891b6ac7236d21b69bdb54b00051422cee004059)
|
|
|
|
|
|
|
| |
This change is specific to Mac OS X/Cocoa.
Reviewed-by: Lars Knoll
(cherry picked from commit 2c2026df66f237b7313397dd74f6bc3212b94596)
|