| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
This change introduces two helper functions in QGraphicsItemPrivate,
that combine the item's transform into the current transform, effectively
merging the code that calculates any item's combined to-parent transform.
This makes the code more readable, and also makes it easier for us to
reintroduce the componentized transform API in QGraphicsItem (which
was previously reverted).
|
|
|
|
|
|
| |
This change also changes the direct painting path to be opt-in as a
temporary testing measure to see what's broken when using the old code
path.
|
|
|
|
|
|
|
|
| |
Convert some repaint() calls back to updates(). This ensures that any
updates triggered before this call are processed normally, while still
keeping the synchronous repaint() call intact.
Reviewed-by: bnilsen
|
| |
|
|
|
|
|
| |
This seems to be the only way to get a high frame rate, regardless
of the performance of painting and all.
|
|
|
|
|
| |
This change is only to test how much of an impact the itemChange
mechanism has on performance. It's easy to revert later on.
|
|
|
|
|
|
| |
just calculate it top-down.
Reviewed-by: bnilsen
|
|
|
|
|
|
|
| |
To avoid sorting siblings in real-time, ensure we lazily sort the list
in place when needed.
Reviewed-by: bnilsen
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
This time with a recursive approach of processing dirty items. I've kept
the previous approach using a dirty list, but the recursive one is now
the default. Use QT_GV_USE_DIRTY_LIST=1 to swap.
I've also cached the item's device transform in both cases so that we
can re-use it later when drawing the item.
|
|
|
|
|
|
|
|
|
|
|
| |
This flag helps optimize the case where an item is used only as a
transformation node in a scene graph, and where the item itself
doesn't paint anything. This is the default for FxItem (the
subclasses that do paint enable the HasContents flag). This lets
Graphics View know whether there's any point in setting up the
world transform, opacity and other things.
Reviewed-by: Lars
|
|
|
|
| |
Regression introduced during refactoring earlier today.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
Greatly simplify how we handle opacity and store it as a member in
QGraphicsItemPrivate. Remove the caching of effectiveOpacity. It's
faster to calculate it on the fly, and the recursive painting algorithm
will make even that need go away.
Reviewed-by: Andreas
|
|
|
|
|
|
|
|
| |
Since the transform is now a pointer in QGraphicsItemPrivate, we can
use this pointer directly and there's no need for a separate bitflag
anymore.
Reviewed-by: Andreas
|
|
|
|
|
|
|
|
|
| |
Now that we have a recursive painting algorithm these types of
optimizations are no longer necessary. In fact they only cause more
problems and clutter up the code unnecessarily. Removing this also
removes extra overhead from moving and transforming items.
Reviewed-by: Lars
|
|
|
|
|
|
|
|
|
|
|
| |
This flag helps optimize the case where an item is used only as a
transformation node in a scene graph, and where the item itself
doesn't paint anything. This is the default for FxItem (the
subclasses that do paint enable the HasContents flag). This lets
Graphics View know whether there's any point in setting up the
world transform, opacity and other things.
Reviewed-by: Lars
|
|
|
|
| |
Regression introduced during refactoring earlier today.
|
|
|
|
|
|
|
|
|
| |
The code so far was converting the rect to a painterpath, mapping
that one and then taking the bounding rect. It is actually sufficient
to simply map the four corners of the rectangle and take the bounding
rect of these four points even in the projective case.
Reviewed-by: Andreas
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
Greatly simplify how we handle opacity and store it as a member in
QGraphicsItemPrivate. Remove the caching of effectiveOpacity. It's
faster to calculate it on the fly, and the recursive painting algorithm
will make even that need go away.
Reviewed-by: Andreas
|
|
|
|
|
|
|
|
| |
Since the transform is now a pointer in QGraphicsItemPrivate, we can
use this pointer directly and there's no need for a separate bitflag
anymore.
Reviewed-by: Andreas
|
|
|
|
|
|
|
|
|
| |
Now that we have a recursive painting algorithm these types of
optimizations are no longer necessary. In fact they only cause more
problems and clutter up the code unnecessarily. Removing this also
removes extra overhead from moving and transforming items.
Reviewed-by: Lars
|
|
|
|
|
|
|
|
|
|
|
| |
Removed some experimental code to handle scaling and rotating around
different axis. It cuased setTransform and transform not to behave
symmetrically and caused some performance regressions.
Additionally moved the QTransform out of the (relatively slow) extra
list and made it a pointer in QGraphicsItemPrivate.
Reviewed-by: Andreas
|
|
|
|
|
|
|
|
|
|
|
| |
This is work-in-progress, so don't expect everything to work perfectly.
Most of the auto-test pass and examples and demos seem to run fine.
Unfortunately I'm too tired to write about the actual update mehanism
now, but it's faster than the old approach (if that helps:)). There's
more to optimize, but I'll come back to that later. I need some sleep now :)
To be continued.
|
|
|
|
| |
We'll need this later when making a smarter update mechanism.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
the important thing is by effectively implementing Simple Canvas' approach
to drawing, we're in theory (and in practise measured on the desktop)
as fast as Simple Canvas when rendering.
|
|
|
|
|
|
|
| |
This compiler doesn't seem to follow the same rule as others
for implicit conversions to/from wchar_t.
Add the necessary casts, keeping in mind that sizeof(wchar_t) == 2
on Windows.
|
|
|
|
|
|
|
|
|
|
|
| |
Thunderbird sets only the user level shell association for mailto. This
is now being read before the default mail application registry.
The registry crawling could have been avoided by using the ShellExecute()
but it supports only around 2KBytes of data as parameter, so we will
continue using CreateProcess().
Task-number: 251554
Reviewed-by: Jens Bache-Wiig
|
|
|
|
|
|
|
|
|
|
|
| |
When using Qt/E with VNC screen driver on top of the Linux framebuffer
(export QWS_DISPLAY="VNC:LinuxFb") the region to be exposed needs be clipped
to the real screen to avoid possible negative coordinates which in turn
cause access to invalid memory locations when comparing the content of the
VNC buffer with the Linux framebuffer.
Merge-request: 603
Reviewed-by: Tom Cooksey <thomas.cooksey@nokia.com>
|
| |
|
|
|
|
|
|
|
|
|
| |
still paint them.
The autotest is included.
Task-number: 254449
Reviewed-by: ogoffart
|
| |
|
|\ |
|
| |
| |
| |
| |
| |
| |
| | |
In case the SetWindowRgn() fails, the region object has to be deleted.
Task-number: 251293
Reviewed-by: Denis Dzyubenko
|
|\ \
| |/
|/|
| |
| |
| |
| |
| | |
Conflicts:
src/3rdparty/phonon/qt7/mediaobject.mm
src/3rdparty/phonon/qt7/quicktimevideoplayer.mm
src/gui/text/qfontengine_win.cpp
tools/linguist/shared/cpp.cpp
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We didn't actually check the depth of the target window before
calling the qt_x11_drawImage() fu, that will only work with
depths >= 24.
Task-number: 255311
Reviewed-by: Samuel
BT: yes
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
events."
This reverts commit 7314c07a3e443b1d5349b419a03db8d41ca43f7e.
As reported by Eike, this patch caused several problems for Qt Creator.
Potentially it may cause problems for other (external) applications as well.
An alternative fix (scheduled for 4.5.x) needs to be found for tasks
254456 and 254460.
Reviewed-by: Richard Moe Gustavsen
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The reason is that cocoa looses the first responder when
we raise the fake window inside the MDA area. So we need
to re-set the first responder again
Task-number: 255040
Reviewed-by: Trenton Schulz
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
There were several problems with antialiased text in 16 bit mode
under Windows. No gamma correction was done, yet we prepared the
cached glyphs for gamma correction. The mask format we rendered
the glyphs into was also set to the desktop depth, which implied
that information was lost and the text looked rather odd.
Reviewed-by: Samuel
BT: yes
|
| |
| |
| |
| |
| |
| |
| | |
This is covered by the autotest
tst_QTextDocument::receiveCursorPositionChangedAfterContentsChange()
Reviewed-by: con
|
| |
| |
| |
| |
| |
| |
| | |
More information in task 166873.
Merge-request: 514
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Some checks where in the wrong locations, and some endifs where
hard to read.
Merge-request: 611
Reviewed-by: Marius Storm-Olsen <marius@trolltech.com>
|