| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
raster paint engine for translucent windows.
Task-number: QTBUG-12710
Reviewed-by: Jason Barron
|
|
|
|
|
|
|
|
|
|
| |
This flag can be internally used to detect if
QRuntimeGraphicsSystem is used. In some cases Qt needs
to know if runtime graphics system is used and it's
better to have a flag than relsolving graphics system
name every time.
Reviewed-by: Jason Barron
|
|
|
|
|
|
|
|
|
|
|
| |
QRuntimeGraphicsSystem is a proxy graphics system which
can dynamically switch underlying graphics system on runtime.
For example, switch from hardware accelerated graphics system
to raster graphics system on low GPU memory situation. This
feature is currently supported on Symbian platform.
Task-number: QT-3276
Reviewed-by: Jason Barron
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
demos/embedded/anomaly/anomaly.pro
demos/embedded/flightinfo/flightinfo.pro
demos/embedded/lightmaps/lightmaps.pro
demos/embedded/weatherinfo/weatherinfo.pro
examples/network/fortuneclient/fortuneclient.pro
examples/network/fortuneserver/fortuneserver.pro
examples/network/network-chat/network-chat.pro
mkspecs/common/symbian/symbian.conf
mkspecs/features/symbian/platform_paths.prf
qmake/generators/symbian/symmake.cpp
qmake/generators/symbian/symmake.h
src/s60installs/s60installs.pro
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In Symbian Qt::WA_TrasnclucentBackground is set for QDialogs.
In QTBUG-8706 there is setVisible(false) call for widget before
orientation is switched from portrait to landscape with SW APIs.
This setVisible call invalidates/marks the widget area, basically
whole portrait screen (0,0, 360, 640 in 5800XM) dirty.
The orientation switch changes backingstore/windowsurface size to
640, 360, and invalidates that area. As an consequnce the widget
dirty area after these two operations is 0, 0, 640, 640.
Now when the widget is made visible again, the dirty region is
larger than a screen and causes a crash when trying to access
windowsurface bitmap data outside its bounds.
Fixed the issue by using QPainter instead of own implementation.
QPainter handles intersecting with image automatically. Another
benefit of QPainter is that it uses platform specific drawHelpers
if available to speed-up drawing.
Task-number: QTBUG-8706
Reviewed-by: Jani Hautakangas
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
configure
mkspecs/common/symbian/symbian.conf
mkspecs/features/symbian/application_icon.prf
qmake/generators/makefile.cpp
qmake/generators/symbian/initprojectdeploy_symbian.cpp
qmake/generators/symbian/symmake.cpp
tools/assistant/tools/assistant/assistant.pro
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The bug happened when a paint event came in from Symbian, but the
painted area was bigger than the exposed rect being passed in by
Symbian. In these cases we would lose updates to the area outside.
Fixed by calling Draw() once more if we detect that we painted a
larger area to the backing store.
It is still a mystery why this worked on 5.0 though... :-P
AutoTest: QWidget passed
RevBy: Jason Barron
Task: QTBUG-8200
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
mkspecs/common/symbian/symbian.conf
qmake/generators/makefile.cpp
qmake/generators/symbian/symmake.cpp
src/3rdparty/webkit/WebCore/WebCore.pro
Conflict resolution was heavily based on manual application of commit
9cc4ae77a73bd28ff495f36f26dd87c78b76b976.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Commit bc82db did not correctly handle native child widgets.
Consider the case when we have a top-level widget A with a native
child widget B. When QSymbianControl::Draw() is called on the
control corresponding to B, the following occurs:
1. The inExpose flag is set in B's QWExtra structure.
2. The call to syncBackingStore() results in a call to
QWidgetBackingStore::flush(), passing default parameters.
3. Because no target widget was passed to flush(), this
function selects the top-level widget (A) as the target for
the flush operation, passing A as the first argument of
QS60WindowSurface::flush().
4. QS60WindowSurface::flush() checks the inExpose flag from A's
QWExtra structure, finds it to be false, and proceeds to
call DrawNow() on A's control.
Because QSymbianControl::Draw() uses the default graphics context,
this context is shared between controls. This means that the DrawNow()
call in step 4 causes a WSERV-10 panic (Activate() called on an
already-active) graphics context.
This patch moves the inExpose flag from B's QWExtra into A's QTLWExtra,
with the result that the call to DrawNow() in step 4 is suppressed.
Task-number: QTBUG-7960
Reviewed-by: axis
|
|\ \
| |/
| |
| |
| | |
Conflicts:
mkspecs/features/symbian/platform_paths.prf
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| | |
Reviewed-by: Trust Me
|
|\ \
| |/
| |
| |
| |
| | |
Conflicts:
configure
src/gui/text/qfontdatabase_s60.cpp
|
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| |
| | |
The word 'module' was missing.
Reviewed-By: TrustMe
|
| | |
|
|/
|
|
| |
file system.
|
|
|
|
|
|
|
|
|
|
|
|
| |
The crash was caused by the image data not being locked before being
accessed.
Also avoided an unnecessary detach copy by making the image variable
a reference.
RevBy: Jani Hautakangas
Task: QTBUG-4705
AutoTest: QWidget passed
|
|
|
|
|
|
|
|
|
| |
This is done to reduce heap consumption and to give
a possibility to share bitmaps across process. QPixmap
maps to Symbian CFbsBitmap which is stored in Symbian
font and bitmap server.
Reviewed-by: Jason Barron
|
|
|
|
| |
Reviewed-by: Trust Me
|
|
|
|
| |
Reviewed-by: Trust Me
|
|
|
|
| |
RevBy: Trust me
|
|
|
|
| |
due to http://qt-reviews.europe.nokia.com/r/67/
|
|\
| |
| |
| |
| | |
Conflicts fixed:
src/corelib/io/qdiriterator.cpp
|
| |
| |
| |
| | |
RevBy: Trust me
|
| |
| |
| |
| | |
RevBy: Trust me
|
|/
|
|
| |
compatability
|
|
|
|
|
| |
Contains some smaller fixes and renaming of macros. Looks big,
but isn't scary at all ;)
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
When a window is hidden, it will call releaseBuffer() on the backing
store which in turn will resize the window surface to a null rect. In
this case, there is no need to update the QImage with the data pointer
since it will be updated on the subsequent beginPaint() when the image
is resized to a valid size again. This also avoids doing unnecessary
locking on the FBSERV heap which still involves a context switch on
older versions of Symbian.
|
|
|
|
|
|
|
|
|
| |
This is duplicated code from the raster paint engine's beginPaint()
function. For translucent windows the previous contents must be cleared
from the backing store before the new content is painted. This class
should probably be re-written as a subclass of the raster version. The
reason we cannot use that implementation directly is because we cannot
use QNativeImage because it doesn't provide anywhere we can do locking.
|
|
|
|
|
|
|
|
|
|
|
|
| |
One step closer to semi-transparent windows, but not there yet. This
gets the transparent contents into the window, but the previous
contents are not cleared so it keeps drawing the backing store on top
of itself each time a Draw() is done. SetBackgroundColor() indicates
to WSERV that our window is semi-transparent. We also make sure not to
use 'EDrawModeWriteAlpha' when the widget is non-opaque since this
actually changes the alpha channel on the frame buffer (not the
window) so the gives undesired results. It's a faster draw mode though
so we should use it where we can.
|
|
|
|
|
|
|
|
|
|
|
| |
Warning, this is completely untested!
Details: This should (in theory) get translucent windows working
but this hasn't been tested yet. The emulator environment
seems to return only 16ColorMU display modes which implies
the window is opague so Qt ignores the translucent flag. HW
seems to create 16ColorMA windows, but it hasn't been tested
there yet either (no time).
|
|
|