summaryrefslogtreecommitdiffstats
path: root/src/plugins/gfxdrivers/directfb/qdirectfbwindowsurface.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Remove DWCAPS_DOUBLEBUFFER in window creationAnders Bakken2009-11-181-1/+1
| | | | | | | | This value seems to cause problems on various chipsets and we get a double buffered window regardless. Reviewed-by: Donald Carr <donald.carr@nokia.com> (cherry picked from commit 3bc9a381ebfaf9144120936bb579b71fc7cf29ae)
* API review: Rename numRects() -> rectCount()Marius Storm-Olsen2009-11-091-1/+1
| | | | | | | QRegion::numRects() is marked obsolete. Removed all usage of the old function inside Qt and test-cases. Reviewed-by: Andreas Aardal Hanssen
* Store DirectFB winID as a dynamic propertyAnders Bakken2009-10-221-0/+13
| | | | | | | | | | Since QWS uses the winids for its own purposes I have to store this as a dynamic property. _q_DirectFBWindowID The _q_ is documented to be reserved so this won't break anyone's applications. Reviewed-by: Donald Carr <donald.carr@nokia.com>
* Don't create too many window surfaces in DFBAnders Bakken2009-10-131-1/+5
| | | | | | | | Since DirectFB handles the composition for us we don't need to invalidate anything when moving a window. Only on resize do we want another paint event. Reviewed-by: Donald Carr <donald.carr@nokia.com>
* Make sure we don't repaint when moving a windowAnders Bakken2009-10-131-0/+2
| | | | | | | | We need to make sure the QDirectFBWindowSurface returns true for isBuffered(). Otherwise QWSWindowSurface will force a repaint when moved. Reviewed-by: Donald Carr <donald.carr@nokia.com>
* Fix a window opacity bug with DirectFBAnders Bakken2009-10-011-52/+58
| | | | | | | | | Initialize IDirectFBWindows with the correct capabilities/options when supporting top level transparency. Also, properly deal with runtime changes of top level transparency. Reviewed-by: Noam Rosenthal <noam.rosenthal@nokia.com>
* Clean up releaseSurface in QDirectFBPaintDeviceAnders Bakken2009-10-011-7/+4
| | | | | | | | Instead of having to call unlockSurface/releaseSubSurface and releaseSurface to release the surface in QDirectFBWindowSurface make releaseSurface do all three things. Reviewed-by: Donald Carr <donald.carr@nokia.com>
* Fix a bug in QDirectFBWindowSurface::scrollAnders Bakken2009-09-171-0/+2
| | | | | | | | | | | It seems that one cannot do multiple blits within a double-buffered surface in overlapping one another without doing a Flip in between. I find this a little odd and will check that it's the correct behavior but this fixes bugs in scroll(). To see a case that used to produce drawing errors check out the collidingmouse example and drag the viewport around. Reviewed-by: Jervey Kong <jervey.kong@nokia.com>
* Export a function for getting a IDirectFBWindowAnders Bakken2009-09-151-4/+8
| | | | | | This function is only exported when DirectFB is built into QtGui. Reviewed-by: Donald Carr <donald.carr@nokia.com>
* Fix a bug in surfaceForWidgetAnders Bakken2009-09-151-1/+2
| | | | | | I had the logic of the assert wrong with the isAncestorOf call. Reviewed-by: Donald Carr <donald.carr@nokia.com>
* Update license headers again.Jason McDonald2009-09-091-4/+4
| | | | Reviewed-by: Trust Me
* memset DFBWindowDescription to 0Anders Bakken2009-09-081-0/+2
| | | | | | This makes debugging easier. Reviewed-by: TrustMe
* Remove unnecessary call to exposeRegion in DFBAnders Bakken2009-09-041-12/+4
| | | | | | | | | If we make sure to erase the background to background color in connect() we don't have to do it in setGeometry. Also clean up the code in QDBWindowSurface::flush Reviewed-by: Donald Carr <donald.carr@nokia.com>
* Handle proxywidgets better in DFBAnders Bakken2009-09-041-21/+26
| | | | | | | | This code is roughly the same as in other screen drivers. We shouldn't flush widgets that are in a graphicsscene as a proxy widget. They will be handled by the graphicsview. Reviewed-by: Donald Carr <donald.carr@nokia.com>
* Make exposeRegion work better in DFB_NO_WM modeAnders Bakken2009-09-041-57/+11
| | | | | | | | Previously we didn't properly compose windows so QT_NO_DIRECTFB_WM mode would generally only work for single windows (with no popups). This also simplifies the code a lot. Previously we would among other things paint the mouse cursor twice in this mode.
* Fix a bug in DFBWindowSurface::setGeometryAnders Bakken2009-09-041-26/+31
| | | | | | | | | | Make sure to release the surface of a window before resizing. Seemingly certain versions of DirectFB change the surface when the window is resized. Also clean up setGeometry() Reviewed-by: Donald Carr <donald.carr@nokia.com>
* Create windows with the appropriate geometryAnders Bakken2009-09-021-5/+11
| | | | | | | | Since DirectFB allows for providing position and size on creation of windows we might as well use these fields rather than first create the surface and then resize it. Reviewed-by: Donald Carr <donald.carr@nokia.com>
* Make sure to release surface in ~DFBWindowSurfaceAnders Bakken2009-09-021-0/+20
| | | | | | | | | | We don't want this surface to be released by QDirectFBScreen. It's always created without tracking. Also abstract the if (dfbSurface != primarySurface) things since we will use it from multiple functions. Reviewed-by: Donald Carr <donald.carr@nokia.com>
* Partially revert 05e30a4aa7ae5ea552c459fc7d64c8270Anders Bakken2009-09-021-2/+0
| | | | | | sibling exists when QT_NO_DIRECTFB_WM is defined as well. Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
* Fix DirectFB driver when comipled with NO_WMJørgen Lind2009-09-021-0/+2
| | | | Reviewed-by: Tom
* Rewrite of DirectFB locking mechanismAnders Bakken2009-09-011-2/+3
| | | | | | | | | | | | | | | | | DirectFB allows you to have a locked subSurface that remains valid while you paint on the unlocked "parent" surface. The only limitation is that when accessing the locked memory you might have to call DirectFB->WaitIdle() in case pending GPU operations aren't finished. After this we keep the locked surface around at all times (from the first time it's requested) until the surface dies. Previous calls to lock() will just call WaitIdle if necessary and previous calls to unlock now just mark the surface as dirty and in need of a WaitIdle if someone needs to access its pixel data. Reviewed-by: Donald Carr <donald.carr@nokia.com>
* Make DirectFB compile with Qt in a namespaceAnders Bakken2009-09-011-14/+10
| | | | Reviewed-by: Donald Carr <donald.carr@nokia.com>
* Make cursor work in non-windowed modeAnders Bakken2009-08-311-9/+12
| | | | Reviewed-by: Donald Carr <donald.carr@nokia.com>
* Clean up directfb ifdefsAnders Bakken2009-08-311-0/+5
| | | | | | Make sure all files are wrapped in QT_NO_QWS_DIRECTFB Reviewed-by: Donald Carr <donald.carr@nokia.com>
* Fix QT_BEGIN/END_NAMESPACE in DirectFBAnders Bakken2009-08-311-0/+5
| | | | Reviewed-by: Donald Carr <donald.carr@nokia.com>
* Merge branch '4.5' into 4.6Thiago Macieira2009-08-311-13/+13
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: demos/boxes/glshaders.cpp demos/boxes/vector.h demos/embedded/fluidlauncher/pictureflow.cpp demos/embedded/fluidlauncher/pictureflow.h doc/src/desktop-integration.qdoc doc/src/distributingqt.qdoc doc/src/examples-overview.qdoc doc/src/examples.qdoc doc/src/frameworks-technologies/dbus-adaptors.qdoc doc/src/geometry.qdoc doc/src/groups.qdoc doc/src/objecttrees.qdoc doc/src/platform-notes.qdoc doc/src/plugins-howto.qdoc doc/src/qt3support.qdoc doc/src/qtdbus.qdoc doc/src/qtdesigner.qdoc doc/src/qtgui.qdoc doc/src/qtmain.qdoc doc/src/qtopengl.qdoc doc/src/qtsvg.qdoc doc/src/qtuiloader.qdoc doc/src/qundo.qdoc doc/src/richtext.qdoc doc/src/topics.qdoc src/corelib/tools/qdumper.cpp src/gui/embedded/qkbdpc101_qws.cpp src/gui/embedded/qkbdsl5000_qws.cpp src/gui/embedded/qkbdusb_qws.cpp src/gui/embedded/qkbdvr41xx_qws.cpp src/gui/embedded/qkbdyopy_qws.cpp src/gui/embedded/qmousebus_qws.cpp src/gui/embedded/qmousevr41xx_qws.cpp src/gui/embedded/qmouseyopy_qws.cpp src/gui/painting/qpaintengine_d3d.cpp src/gui/painting/qwindowsurface_d3d.cpp src/opengl/gl2paintengineex/glgc_shader_source.h src/opengl/gl2paintengineex/qglpexshadermanager.cpp src/opengl/gl2paintengineex/qglpexshadermanager_p.h src/opengl/gl2paintengineex/qglshader.cpp src/opengl/gl2paintengineex/qglshader_p.h src/opengl/util/fragmentprograms_p.h src/plugins/kbddrivers/linuxis/linuxiskbdhandler.cpp src/plugins/mousedrivers/linuxis/linuxismousehandler.cpp src/script/parser/qscript.g src/script/qscriptarray_p.h src/script/qscriptasm_p.h src/script/qscriptbuffer_p.h src/script/qscriptclass.cpp src/script/qscriptclassdata_p.h src/script/qscriptcompiler.cpp src/script/qscriptcompiler_p.h src/script/qscriptcontext.cpp src/script/qscriptcontext_p.cpp src/script/qscriptcontext_p.h src/script/qscriptcontextfwd_p.h src/script/qscriptecmaarray.cpp src/script/qscriptecmaarray_p.h src/script/qscriptecmaboolean.cpp src/script/qscriptecmacore.cpp src/script/qscriptecmadate.cpp src/script/qscriptecmadate_p.h src/script/qscriptecmaerror.cpp src/script/qscriptecmaerror_p.h src/script/qscriptecmafunction.cpp src/script/qscriptecmafunction_p.h src/script/qscriptecmaglobal.cpp src/script/qscriptecmaglobal_p.h src/script/qscriptecmamath.cpp src/script/qscriptecmamath_p.h src/script/qscriptecmanumber.cpp src/script/qscriptecmanumber_p.h src/script/qscriptecmaobject.cpp src/script/qscriptecmaobject_p.h src/script/qscriptecmaregexp.cpp src/script/qscriptecmaregexp_p.h src/script/qscriptecmastring.cpp src/script/qscriptecmastring_p.h src/script/qscriptengine.cpp src/script/qscriptengine_p.cpp src/script/qscriptengine_p.h src/script/qscriptenginefwd_p.h src/script/qscriptextenumeration.cpp src/script/qscriptextenumeration_p.h src/script/qscriptextqobject.cpp src/script/qscriptextqobject_p.h src/script/qscriptextvariant.cpp src/script/qscriptfunction.cpp src/script/qscriptfunction_p.h src/script/qscriptgc_p.h src/script/qscriptmember_p.h src/script/qscriptobject_p.h src/script/qscriptprettypretty.cpp src/script/qscriptprettypretty_p.h src/script/qscriptvalue.cpp src/script/qscriptvalueimpl.cpp src/script/qscriptvalueimpl_p.h src/script/qscriptvalueimplfwd_p.h src/script/qscriptvalueiteratorimpl.cpp src/script/qscriptxmlgenerator.cpp src/script/qscriptxmlgenerator_p.h tests/auto/linguist/lupdate/testdata/recursivescan/project.ui tests/auto/linguist/lupdate/testdata/recursivescan/sub/finddialog.cpp tests/auto/qkeyevent/tst_qkeyevent.cpp tools/linguist/shared/cpp.cpp
| * Update tech preview license header.Jason McDonald2009-08-311-13/+13
| | | | | | | | Reviewed-by: Trust Me
| * Update license headers.Jason McDonald2009-08-111-1/+1
| | | | | | | | Reviewed-by: Trust Me
* | Optimize permanentState/setPermanentStateAnders Bakken2009-08-261-9/+6
| | | | | | | | | | | | No need to use a QDataStream here. Reviewed-by: Donald Carr <donald.carr@nokia.com>
* | Remove bufferImage stuff from dfbwindowsurfaceAnders Bakken2009-08-261-39/+0
| | | | | | | | | | | | | | Neither grabWidget nor buffer is ever called from Qt and they're not public API Reviewed-by: Donald Carr <donald.carr@nokia.com>
* | Implement QDirectFBScreen::surfaceForWidgetAnders Bakken2009-08-261-0/+21
| | | | | | | | | | | | | | | | | | | | Allow applications to get a pointer to the surface of the window surface for a given widget or a subsurface of the widget. This function ignores whether or not the widget is fully or partially obscured. Reviewed-by: Donald Carr <donald.carr@nokia.com>
* | Ensure that windows are double buffered in DFBAnders Bakken2009-08-251-1/+1
| | | | | | | | Reviewed-by: Donald Carr <donald.carr@nokia.com>
* | Refactor QDirectFBPaintDevice/QDirectFBPixmapDataAnders Bakken2009-08-251-0/+8
| | | | | | | | | | | | Move format into QDirectFBPaintDevice. Reviewed-by: Donald Carr <donald.carr@nokia.com>
* | Improve error message when using WM with NO_LAYERAnders Bakken2009-08-241-4/+0
| | | | | | | | | | | | QT_DIRECTFB_WM relies on QT_DIRECTFB_LAYER to be defined. Reviewed-by: Donald Carr <donald.carr@nokia.com>
* | Clean up surface creation code in dfbAnders Bakken2009-08-211-1/+1
| | | | | | | | | | | | | | Don't try too hard to temporarily represent an image in a real directfb surface. It leads to all sorts of rendering issues. Reviewed-by: Donald Carr <donald.carr@nokia.com>
* | Make sure windows raise properly when focusedAnders Bakken2009-08-181-23/+28
| | | | | | | | | | | | | | | | | | | | We never used to properly raise windows with DirectFB's window management. Somehow the event happens on a window surface that doesn't really have a IDirectFBWindow associated with it but using permanentState I can establish a sibling relationship to ensure raise gets called on the right window surface. Reviewed-By: Donald <qt-info@nokia.com>
* | Clean up DirectFB with WM enabledAnders Bakken2009-08-171-24/+22
| | | | | | | | | | | | | | | | When we have proper window manager support from DirectFB we shouldn't create our own primary surface. This patch vastly cleans up a number of issues in QDirectFBScreen regarding this. Reviewed-by: Donald <qt-info@nokia.com>
* | Clean up primary surface handling in DFBAnders Bakken2009-08-171-2/+2
| | | | | | | | | | | | | | To avoid confusion rename QDirectFBScreen::dfbSurface() primarySurface() since this is what it is. Reviewed-by: Donald <qt-info@nokia.com>
* | Fix a bug in wrt DFBWindowSurface's paintEngineAnders Bakken2009-08-171-11/+6
| | | | | | | | | | | | | | Make sure we recreate the paint engine if it's 0 in beginPaint. Also don't delete the paint engine in moves, only resizes. Reviewed-by: Donald <qt-info@nokia.com>
* | Update contact URL in license headers.Jason McDonald2009-08-121-1/+1
| | | | | | | | Reviewed-by: Trust Me
* | Merge branch '4.5'Thiago Macieira2009-08-031-12/+8
|\ \ | |/ | | | | | | | | | | | | | | | | Conflicts: src/corelib/tools/qsharedpointer.cpp src/corelib/tools/qsharedpointer_impl.h src/gui/dialogs/qcolordialog.cpp src/gui/painting/qwindowsurface_raster.cpp src/network/access/qnetworkaccessmanager.cpp tests/auto/qsharedpointer/externaltests.cpp
| * Refactor QDirectFBPaintDeviceAnders Bakken2009-07-281-9/+0
| | | | | | | | | | | | | | | | | | | | Make the engine a member in QDirectFBPaintDevice instead of one in QDirectFBPixmapData and one in QDirectFBWindowSurface. Don't use the default screen for the dfbpaintdevices. Pass one explicitly. Reviewed-by: Noam Rosenthal <noam.rosenthal@nokia.com>
| * Fix crash in when resizing directfb windowsAnders Bakken2009-07-281-5/+10
| | | | | | | | | | | | | | | | | | Since QRasterPaintEngine::baseClip was initialized when the QDirectFBPaintEngine was created and the paintengine persists for the window surface we run the risk that the baseClip is of the wrong size. This could lead to crashes and erroneous clipping. Reviewed-by: Donald <qt-info@nokia.com>
* | Crash DirectFb plugin when resizing verticalyJørgen Lind2009-07-311-2/+4
|/ | | | | | | QRasterPaintEngine assumes device does not change size. Therefore create a new engine when resizing. Reviewed-by: Tom
* Use BatchBlit in flush/exposeRegionAnders Bakken2009-07-221-25/+32
| | | | | | | | | Minor optimization. Also make sure cursor is drawn in flush even if we're not in Offscreen mode. Reviewed-by: TrustMe
* Fix dfbwindowsurface handling for offscreen modeAnders Bakken2009-07-221-123/+145
| | | | | | | | | | | | | | This patch vastly simplifies the geometry handling (setGeometry/move) It also implements a mode in which DirectFB implementations that do not support windows can use an offscreen buffer as its backing store. Previously the only way to do this was to paint directly on the primary surface. This didn't work when the dfb driver didn't support an accelerated mouse cursor. It also detects the situation when the cursor isn't accelerated and takes care of painting it manually when needed. Reviewed-by: Donald <qt-info@nokia.com>
* Clean up directfb bit flippingAnders Bakken2009-07-171-7/+5
| | | | | | | | | | | | | | DirectFB declares variables that are bit fields as enums. E.g. DFBSurfaceCapabilities caps; caps |= DSCAPS_LOCK; // doesn't compile in C++ Work around this problem by declaring operators for these operations. This greatly improves the readability of the code. Reviewed-by: TrustMe
* We still need to Flip in NO_WM modeAnders Bakken2009-07-021-1/+1
| | | | | | This ifdef was simply in the wrong place. Reviewed-by: Donald <qt-info@nokia.com>
* Remove superfluous call to SetBlittingFlagsAnders Bakken2009-06-291-1/+0
| | | | | | We already do this in QDirectFBWindowSurface::scroll Reviewed-by: TrustMe
* Update license headers as requested by the marketing department.Jason McDonald2009-06-161-2/+2
| | | | Reviewed-by: Trust Me