| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
Addendum to change 9b674ddcea7c0ff7912f185474b7d98bc83bd39f.
The problem was that QWidget::paintEngine() (pure virtual) was
called while being in the destructor. The use-case itself
(see above change) is very very corner case, but still,
it shouldn't crash.
Reviewed-by: bnilsen
|
|
|
|
|
|
|
|
| |
It seems the Xrender PictStandardA1 mask format doesn't work with
XLFD bitmap fonts wrapped in a fontconfig structure.
Task-number: 252328
Reviewed-by: Samuel
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QGLWidget does not support partial updates unless the context is
single buffered and auto-fill background is disabled. The problem
was that QPaintEvent::region() returned the requested update region
without taking into account the limitation of QGLWidget. If QGLWidget
doesn't support partial updates, it means everything has to be updated,
and QPaintEvent::region() must return the whole widget rect.
Auto test included.
Task-number: 241785
Reviewed-by: Trond
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
an untransformed painter
When passing a painter to QWidget::render, we use the
painter->paintEngine()->systemClip() as the "system viewport",
i.e. all painting triggered by render() should be limited to
this area. The only way to achieve this is by always ensuring the
system clip is clipped to the same area (systemClip &= systemViewport).
The problem however, was that we only did this for transformed
painters. We must of course always do it when there's a systemViewport
set, regardless of whether the painter is transformed or not.
Auto test included.
Task-number: 248852
Reviewed-by: Trond
|
|
|
|
|
|
|
|
|
| |
If we have a rect-clip where we actually had spans (used for
cleartype) and then reused that clipdata, we would never re-create the
spans, which would mean that future drawing would be filtered based on
the old clip
Reviewed-by: Samuel
|
|
|
|
|
|
|
|
| |
We have code that assumes that m33 = 1 if the type is TxScale. Instead
of changing all that code it's better to just return TxProject as type
when m33 is different from 1.
Reviewed-by: Simon Hausmann
|
|
|
|
|
|
|
|
|
| |
When QPrinter::fullPage() was set, pageRect() returned the same as
paperRect(). Under Windows, there is always a non-printable area that
was not taken into account in the fullPage() case.
Task-number: 248881
Reviewed-by: Kim
|
|
|
|
|
| |
Task-number: 250971
Reviewed-by: Tom
|
|
|
|
|
|
| |
We need to check if the engine is null before we do the thread test.
Reviewed-by: Thiago
|
|
|
|
|
|
|
|
|
|
|
|
| |
QPainter inherits some properties from the widget, among other font and
pen. These are set in the painter's state in initFrom(), but in 4.5 we
forgot to call QPaintEngineEx::penChanged() to let an extended paint
engine know that the pen has changed. This caused the raster engine to
believe it could blit non-opaque text, due to the fast_text flag not
being correctly updated.
Task-number: 251534
Reviewed-by: Paul
|
|
|
|
|
|
|
|
| |
ARGB32_PM, RGB32, ARGB8565_PM and RGB16 are optimizied elsewhere
and they are the most important formats. The implemenentation of several
of these depths are also buggy, so one can question their relevance.
Reviewed-by: Samuel
|
|
|
|
|
|
|
| |
The "optimized" version of this function was actually slower
by quite a bit, so revert it to the old "trivial" code.
Reviewed-by: Samuel
|
|
|
|
|
|
|
|
| |
The blending always happens in 32-bit premultiplied so the conversion
back to dest-format needs to base itself on premlutiplied too.
Task-number: 182246
Reviewed-by: Samuel
|
|
|
|
|
|
|
|
|
|
| |
There was special code for gcc to run super-fast, but it was
buggy and didn't blend properly. Kill this code for the benefit
of the normal blend function. The performance on an Intel Quad Core 2
was not too different from the bytemul approach.
Task-number: 246009
Reviewed-by: Trond
|
|
|
|
|
|
|
| |
The rounding was just wrong...
Task-number: 246009
Reviewed-by: Trond
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
QPrinter::printerName() used to return the CUPS printer queue name instead
of the user-set printer name, which was wrong. In addition, if trying to
set the printer name to a non-valid printer, the default printer was still
used internally, which is not correct. As sonn as an invalid name is set,
the printer now enters an invalid state, which it can only get out of
by setting a valid printer name.
Task-number: 199271
Reviewed-by: Gunnar
|
|
|
|
|
|
|
|
| |
Clip both against the source and target device rectangles.
Task-number: 247937
Reviewed-by: Trond
BT: yes
|
|
|
|
| |
Reviewed-by: bnilsen
|
|
|
|
|
|
| |
Error was introduced in change 52f87de53328c661049acf09d5fedc1850aa9bfa.
Reviewed-by: Trust Me
|
|
|
|
|
|
|
| |
Setting properties on an invalid printer is not supported. Use isValid() to check if it valid.
Rev-by: Trond Kjernåsen
Rev-by: Geir Vattekar
|
|
|
|
|
|
|
|
| |
The pen width should not be scaled for cosmetic pens.
Task-number: 247083
Reviewed-by: Trond
BT: yes
|
| |
|
|
|
|
| |
Reviewed-by: Trond
|
|
|
|
|
|
| |
RevBy: Samuel
Details: The IMAGE_FROM_PIXMAP has to be doing a local copy or
something, because it is sure not fast...
|
|
|
|
| |
RevBy: Samuel
|
|
|
|
|
|
| |
We can shortcut quite some calculations for the common case
by first checking whether the point is contained in the
control point rect.
|
|
|
|
|
|
|
| |
Task: none
RevBy: Samuel
AutoTest: Still pass
Details: Please do not perform (potentially expensive) calculations just for fun :)
|
|
|
|
|
|
|
|
|
|
| |
Task: none
RevBy: Ariya Hidayat
AutoTest: Still pass.
Details: QTransform::type() is cached, so only the first call to it
should be expensive. However, it is not inlined so there's
an overhead involved (especially when these functions are
called a gazillion times).
|
|
|
|
| |
Reviewed-by: TrustMe
|
|
|
|
| |
Reviewed-by: Morten Engvoldsen
|
|
|
|
|
|
|
| |
not as a rendering primitive.
Task-number: 183493
Reviewed-by: TrustMe
|
|
|
|
|
|
|
|
|
|
|
|
| |
PostScript print engines.
The PDF/PostScript does not support perspective transforms, so it has
to be emulated through our draw_helper() fallback. PostScript doesn't
support alpha blending, so all perspective drawing needs to be forced
through the alpha print engine.
Task-number: 249754
Reviewed-by: Samuel
|
|
|
|
|
|
|
| |
documentation and updated a diagram.
Task-number: 228201
Reviewed-by: TrustMe
|
|
|
|
|
|
|
| |
Call isEmpty() on the normalized rect instead of the original rect.
Task-number: 247505
Reviewed-by:
|
|
|
|
|
|
|
|
| |
Use QStroker::setRect() to avoid dashing parts of the path that are
outside the device rect.
Task-number: 246573
Reviewed-by: Trond
|
|
|
|
|
|
|
|
|
|
| |
When drawing ellipse without stroke we need to use the same width/height
for the fill as we would use for the stroke for the stroke and fill to
match. Filling first and then stroking should produce the same result as
filling and stroking in one go.
Task-number: 249490
Reviewed-by: Trond
|
|
|
|
|
|
|
| |
Missing increments in the blend function's tail code.
Task-number: 247492
Reviewed-by: Paul
|
|
|
|
| |
Reviewed-by: Lorn Potter
|
|
|