summaryrefslogtreecommitdiffstats
path: root/src/gui/painting/qwindowsurface_s60.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Update year in Nokia copyright messages.Jason McDonald2012-01-111-1/+1
| | | | | | | | | Simple search and replace. This commit doesn't touch 3rd-party files, nor translations (where the change is not so simple and will be handled in a separate commit). Change-Id: I4e48513b8078a44a8cd272326685b25338890148 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Merge remote-tracking branch 'origin/4.7' into qt-4.8-from-4.7Liang Qi2011-06-241-7/+7
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/gui/image/qpixmap_raster_symbian.cpp src/gui/image/qpixmapdatafactory.cpp src/gui/painting/qgraphicssystem.cpp src/gui/styles/qs60style.cpp src/network/bearer/qnetworkconfigmanager_p.h src/s60installs/bwins/QtGuiu.def src/s60installs/bwins/QtOpenGLu.def src/s60installs/bwins/QtOpenVGu.def src/s60installs/eabi/QtGuiu.def src/s60installs/eabi/QtOpenVGu.def tests/auto/qnetworkproxyfactory/tst_qnetworkproxyfactory.cpp
| * Proper naming for raster pixmap and paintengine on Symbian.Laszlo Agocs2011-06-161-7/+7
| | | | | | | | | | | | | | | | As QTBUG-19880 highlighted, the old S60 naming is not suitable for these classes anymore. Task-number: QTBUG-19913 Reviewed-by: Jani Hautakangas
| * Update licenseheader text in source filesJyri Tahtela2011-05-131-17/+17
| | | | | | | | | | | | | | Updated version of LGPL and FDL licenseheaders. Apply release phase licenseheaders for all source files. Reviewed-by: Trust Me
* | Update licenseheader text in source files for qt4.8Jyri Tahtela2011-05-131-17/+17
| | | | | | | | | | | | | | Updated version of LGPL and FDL licenseheaders. Apply release phase licenseheaders for all source files. Reviewed-by: Trust Me
* | Added WindowSurfaceFeature enum to QWindowSurface.Samuel Rødal2011-03-291-2/+2
| | | | | | | | | | | | | | | | Now that we've added hasPreservedContents() it's cleaner to convert the various features to feature flags, which is also more extensible in case more flags are needed in the future. Reviewed-by: Bjørn Erik Nilsen
* | Merge branch 'qt-master-from-4.7' of ↵Qt Continuous Integration System2011-03-221-9/+19
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | scm.dev.nokia.troll.no:qt/qt-integration into master-integration * 'qt-master-from-4.7' of scm.dev.nokia.troll.no:qt/qt-integration: Add flag for forcibly propagating backing store alpha to framebuffer Fixed unmatched quotes in s60installs.pro Added setSwitchPolicy to MeeGo graphicssystem helper API. Add /q switch to QMAKE_DEL_FILE command in symbian
| * \ Merge branch 4.7 into qt-master-from-4.7Qt Continuous Integration System2011-03-191-9/+19
| |\ \ | | |/
| | * Add flag for forcibly propagating backing store alpha to framebufferGareth Stockwell2011-03-181-9/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, the following rules applies to the creation and blitting of the Symbian raster backing store: 1. Creation of backing store with an alpha channel: Backing store has an alpha channel only if !QWidget::isOpaque. 2. Pre-filling of backing store prior to paint loop: Backing store is filled with transparent pixels if !QWidget::isOpaque. 3. Blitting of backing store: CGraphicsContext::EDrawModeWriteAlpha is used (meaning that backing store alpha values are propagated into the frame buffer), if QWidget::isOpaque. In order for the direct camera viewfinder to be visible on DSA devices, alpha=0 must be written into the framebuffer in the region where the viewfinder will be displayed. This requires a backing store with an alpha channel (1), use of CGraphicsContext::EDrawModeWriteAlpha (3), but not pre-filling of the entire backing store (2). This patch adds a new enum value, QWExtra::BlitWriteAlpha, which can be used by camera backends to achieve the desired behaviour. Task-number: QTMOBILITY-1278 Reviewed-by: Jani Hautakangas
* | | Make getters for staticContentsSupport and partialUpdateSupport virtualArmin Berres2011-03-161-2/+5
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | When QRuntimeGraphicsSystem is asked for its support for static contents of partial updates it should return the value for the currently running wrapped graphicssystem. As the getters have not been virtual so far this could not be implemented. Additionally the setters have been removed as these values are not supposed to be set from the outside. Only the graphicssystems itself knows what it supports. If the default values should be changed the methods should be overwritten. Merge-request: 1136 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* | Merge remote-tracking branch 'origin/4.7' into qt-master-from-4.7Olivier Goffart2011-02-101-4/+13
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: doc/src/development/qmake-manual.qdoc mkspecs/symbian-gcce/qmake.conf qmake/project.cpp src/corelib/global/qnamespace.qdoc src/declarative/graphicsitems/qdeclarativetext.cpp src/gui/text/qtextdocumentlayout.cpp src/gui/text/qtextdocumentlayout_p.h tests/auto/declarative/qdeclarativetext/tst_qdeclarativetext.cpp tests/auto/networkselftest/networkselftest.pro tests/auto/qscriptengine/tst_qscriptengine.cpp tools/designer/src/components/signalsloteditor/signalslot_utils.cpp tools/designer/src/components/signalsloteditor/signalsloteditorwindow.cpp tools/qdoc3/test/qt-build-docs.qdocconf tools/qdoc3/test/qt-html-templates.qdocconf tools/qdoc3/test/qt-html-templates_zh_CN.qdocconf tools/qdoc3/test/qt.qdocconf tools/qdoc3/test/qt_ja_JP.qdocconf tools/qdoc3/test/qt_zh_CN.qdocconf
| * Recreate Symbian raster backing store when WA_TranslucentBackground setGareth Stockwell2011-02-091-4/+13
| | | | | | | | | | Task-number: QTBUG-17288 Reviewed-by: Jani Hautakangas
* | Merge remote branch 'origin/4.7' into qt-master-from-4.7Olivier Goffart2011-01-171-1/+1
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: examples/webkit/imageanalyzer/imageanalyzer.h examples/webkit/imageanalyzer/mainwindow.h mkspecs/unsupported/qws/linux-x86-openkode-g++/qplatformdefs.h src/corelib/io/qfsfileengine_iterator_unix.cpp src/corelib/io/qfsfileengine_iterator_win.cpp src/corelib/kernel/qcoreapplication.cpp src/network/access/qnetworkaccessdatabackend.cpp src/plugins/bearer/connman/qconnmanservice_linux.cpp src/plugins/platforms/openvglite/qwindowsurface_vglite.h src/s60installs/bwins/QtCoreu.def src/s60installs/eabi/QtCoreu.def src/s60installs/s60installs.pro tools/assistant/tools/assistant/helpviewer_qwv.h tools/qdoc3/test/qt-html-templates.qdocconf
| * Update copyright year to 2011.Jason McDonald2011-01-101-1/+1
| | | | | | | | Reviewed-by: Trust Me
* | Merge branch 4.7 into qt-master-from-4.7Qt Continuous Integration System2010-10-121-3/+5
|\ \ | |/
| * Crash fix when using the runtime graphics system on Symbian.Jason Barron2010-10-121-3/+5
| | | | | | | | | | | | | | | | | | | | If QWidget::destroy() is called (perhaps by setParent) then the window surface is deleted by the destructor of QSymbianControl instead of in the "normal" place which is ~QWidget(). This means that we should not attempt to use the RWindow in the window surface because it is in the process of being destroyed. Reviewed-by: Jani Hautakangas
* | Prefer Q_CHECK_PTR to q_check_ptrJoão Abecasis2010-08-191-1/+2
|/ | | | | | | | | | | With the macro version we get proper debug output (with __FILE__, __LINE__ annotations) when compiling with -no-exceptions and !QT_NO_DEBUG. All changes in this patch affect assignment to local variables, where the order of assignment versus actual pointer check is not important. Reviewed-by: Olivier Goffart
* Use ARGB32 premultiplied backing store format in Symbian^3Jani Hautakangas2010-08-061-4/+8
| | | | | | | raster paint engine for translucent windows. Task-number: QTBUG-12710 Reviewed-by: Jason Barron
* Add runtime_graphics_system flag to QApplicationPrivate.Jani Hautakangas2010-05-281-1/+1
| | | | | | | | | | 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
* QRuntimeGraphicsSystemJani Hautakangas2010-05-201-2/+29
| | | | | | | | | | | 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
* Merge branch '4.7' of scm.dev.nokia.troll.no:qt/qt into 4.7-s60axis2010-03-161-17/+8
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * Fixed paint crash in Symbian for trasnclucent dialogs.Janne Anttila2010-03-101-17/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | Merge branch 'master' of scm.dev.nokia.troll.no:qt/qt-s60-publicaxis2010-02-161-1/+9
|\ \ | |/ | | | | | | | | | | | | | | | | | | 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
| * Fixed missing repaints on S60 3.1.axis2010-02-151-1/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | Merge branch '4.6' of scm.dev.nokia.troll.no:qt/qtaxis2010-02-121-4/+7
|\ \ | |/ | | | | | | | | | | | | | | | | | | 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.
| * Fixed defect in handling of expose events for SymbianGareth Stockwell2010-02-091-4/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | Merge branch '4.6' of scm.dev.nokia.troll.no:qt/qt-s60-publicaxis2010-01-211-4/+6
|\ \ | |/ | | | | | | Conflicts: mkspecs/features/symbian/platform_paths.prf
| * Improve the behavior of expose events on Symbian.Jason Barron2010-01-141-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * Update copyright year to 2010Jason McDonald2010-01-061-1/+1
| | | | | | | | Reviewed-by: Trust Me
* | Merge branch '4.6' of git@scm.dev.nokia.troll.no:qt/qt-s60-publicaxis2009-12-181-4/+6
|\ \ | |/ | | | | | | | | Conflicts: configure src/gui/text/qfontdatabase_s60.cpp
| * Fix for QTBUG-4908 SVG transparency rendering problem.Jani Hautakangas2009-12-161-3/+5
| | | | | | | | | | | | | | | | 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
| * Fix typo in license headerAlessandro Portale2009-11-121-1/+1
| | | | | | | | | | | | The word 'module' was missing. Reviewed-By: TrustMe
* | Some compile fixes.axis2009-11-131-1/+1
| |
* | Various header file inclusion fixes for rvct on linux using a case-sensitive ↵Simon Hausmann2009-10-231-1/+1
|/ | | | file system.
* Fixed a crash bug on S60 SDK 3.1.axis2009-10-071-1/+4
| | | | | | | | | | | | 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
* Introduce native Symbian bitmap support to QPixmapJani Hautakangas2009-09-181-103/+55
| | | | | | | | | 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
* Update license headers again.Jason McDonald2009-09-091-4/+4
| | | | Reviewed-by: Trust Me
* Update tech preview license header for files that are new in 4.6.Jason McDonald2009-08-311-13/+13
| | | | Reviewed-by: Trust Me
* Changed names and URLs to reflect name change.axis2009-08-191-1/+1
| | | | RevBy: Trust me
* Changing names of Symbian leave <-> qt throw translation functionsmread2009-08-131-2/+2
| | | | due to http://qt-reviews.europe.nokia.com/r/67/
* Merge branch 'master' of git@scm.dev.nokia.troll.no:qt/qt-s60-publicmread2009-08-071-4/+4
|\ | | | | | | | | Conflicts fixed: src/corelib/io/qdiriterator.cpp
| * Update license headers according to commit 858c70f768e.axis2009-08-061-3/+3
| | | | | | | | RevBy: Trust me
| * Replaced $MODULE$ with hardcoded module names.axis2009-08-061-1/+1
| | | | | | | | RevBy: Trust me
* | replacing assert with recovery for begin/end paint lock for exception ↵mread2009-08-071-3/+5
|/ | | | compatability
* Squashed commit of the topic/exceptions branch.Harald Fernengel2009-08-031-4/+5
| | | | | Contains some smaller fixes and renaming of macros. Looks big, but isn't scary at all ;)
* Fix warnings because of unused variables.axis2009-06-291-1/+1
|
* Fixed incorrect headers.axis2009-06-031-1/+31
|
* Small optimization when hiding windows.Jason Barron2009-04-301-3/+4
| | | | | | | | | | 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.
* Get transparency working by clearing the window surface.Jason Barron2009-04-281-1/+22
| | | | | | | | | 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.
* More work on translucent windows.Jason Barron2009-04-281-9/+8
| | | | | | | | | | | | 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.