summaryrefslogtreecommitdiffstats
path: root/src/plugins/gfxdrivers
Commit message (Collapse)AuthorAgeFilesLines
* Make sure windows raise properly when focusedAnders Bakken2009-08-183-25/+57
| | | | | | | | | | 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>
* Initialize bpl in QDirectFBPaintDevice(...)Anders Bakken2009-08-181-1/+1
| | | | Reviewed-by: Donald <qt-info@nokia.com>
* Disambiguate variable namesAnders Bakken2009-08-182-7/+7
| | | | | | | | s/lock/lockFlgs/ lock is also a function in QWSWindowSurface. Reviewed-by: Donald <qt-info@nokia.com>
* Simplify DirectFB clippingAnders Bakken2009-08-182-25/+36
| | | | | | | | | | | | | | Instead of storing whether or not our clip is dirty and updating it in every paint operation we'll just update it whenever it changes. This is more intuitive and should be faster for the common case as well. Also make sure to implement clip(region). Prevent multiple updateClip() calls for a single clip operation by introducing a flag to check whether we recursed into the different clip() calls. Reviewed-by: Donald <qt-info@nokia.com>
* Fix bugs in DFBPE fillRect and drawTiledPixmapAnders Bakken2009-08-181-3/+2
| | | | | | Make sure to call CLIPPED_PAINT so painting with a region clip works. Reviewed-by: Donald <qt-info@nokia.com>
* Make sure to update pos QDFBCursor::moveAnders Bakken2009-08-181-0/+1
| | | | | | | | We don't need to chain to the base class since the QDirectFBScreenCursor always is rendered by hardware but we should update the pos variable in case people ask where the cursor is. Reviewed-by: TrustMe
* Clean up DirectFB with WM enabledAnders Bakken2009-08-174-76/+123
| | | | | | | | 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 DirectFB definesAnders Bakken2009-08-171-0/+25
| | | | | | | Make QT_DIRECTFB_WM be defined if QT_NO_DIRECTFB_WM is not. This makes it possible to write more readable code. Reviewed-by: Donald <qt-info@nokia.com>
* Clean up primary surface handling in DFBAnders Bakken2009-08-173-28/+26
| | | | | | | 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-172-12/+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-1239-39/+39
| | | | Reviewed-by: Trust Me
* Merge branch '4.5'Thiago Macieira2009-08-0310-156/+262
|\ | | | | | | | | | | | | | | | | | | 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
| * Qtify void* func => void *funcAnders Bakken2009-07-281-2/+2
| | | | | | | | Reviewed-by: TrustMe
| * Refactor QDirectFBPaintDeviceAnders Bakken2009-07-287-34/+37
| | | | | | | | | | | | | | | | | | | | 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>
| * Make autorepeat work for DirectFBAnders Bakken2009-07-281-5/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | When holding down a key DirectFB gives us only keypresses. Qt wants these kind of events: press not autorepeat release autorepeat press autorepeat release autorepeat press autorepeat release not autorepeat Reviewed-by: Donald <qt-info@nokia.com>
| * Fix crash in when resizing directfb windowsAnders Bakken2009-07-282-5/+11
| | | | | | | | | | | | | | | | | | 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>
| * Compile with DirectFB < 1.0Anders Bakken2009-07-281-0/+2
| | | | | | | | | | | | These porter duff operations were added for 1.0. Reviewed-by: Donald <qt-info@nokia.com>
| * Remove ignore system clip stuff in dfbpaintengineAnders Bakken2009-07-282-5/+1
| | | | | | | | Reviewed-by: Donald <qt-info@nokia.com>
| * Fix off-by-one bug in QDirectFBScreen::flipSurfaceAnders Bakken2009-07-281-4/+4
| | | | | | | | | | | | | | | | | | | | DFBRegions are exactly like QRects it turns out. x2/y2 == QRect::right()/QRect::bottom() This means I actually can reinterpret_cast QRect to DFBRegions but it's not really worth it. Reviewed-by: Noam Rosenthal <noam.rosenthal@nokia.com>
| * Major clipping patch in QDirectFBPaintEngineAnders Bakken2009-07-281-75/+91
| | | | | | | | | | | | | | Handle region clips by iterating over the rectangles and updating clips accordingly. Reviewed-by: Noam Rosenthal <noam.rosenthal@nokia.com>
| * Make porterduff operations work in DirectFBAnders Bakken2009-07-281-33/+97
| | | | | | | | | | | | | | | | This patch makes us not fall back to the raster engine for most of the composition mode operations when doing blits. Primitives are still handled by Qt when composition != SourceOver Reviewed-by: Noam Rosenthal <noam.rosenthal@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
* | Merge branch 'texture_from_pixmap'Tom Cooksey2009-07-301-3/+2
|\ \
| * | Refactor QImage/QPixmap cleanup hooks into a seperate classTom Cooksey2009-07-281-3/+2
| | | | | | | | | | | | | | | | | | | | | The new class alows more than one hook to be installed at a time and, for QPixmaps, the hook is told which pixmap is getting deleted. Reviewed-By: Samuel
* | | Remove a warning in qdirectfbpaintengineAnders Bakken2009-07-281-3/+1
|/ / | | | | | | | | | | These structures are only used in versions after 0.922. Reviewed-by: Donald <qt-info@nokia.com>
* | Merge branch '4.5' of scm.dev.nokia.troll.no:qt/qtSimon Hausmann2009-07-246-315/+300
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/3rdparty/webkit/VERSION src/3rdparty/webkit/WebCore/ChangeLog src/3rdparty/webkit/WebCore/bridge/qt/qt_instance.cpp src/3rdparty/webkit/WebCore/bridge/qt/qt_instance.h src/3rdparty/webkit/WebCore/page/DragController.cpp src/3rdparty/webkit/WebKit/qt/Api/qwebframe.cpp src/3rdparty/webkit/WebKit/qt/ChangeLog src/3rdparty/webkit/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp src/gui/painting/qpaintengineex_p.h tools/linguist/lupdate/main.cpp
| * return when brush is NoBrush in DFBPaintEngineAnders Bakken2009-07-231-0/+4
| | | | | | | | Reviewed-by: Noam Rosenthal <noam.rosenthal@nokia.com>
| * Fix a bug in directfb mouse handlingAnders Bakken2009-07-222-15/+1
| | | | | | | | | | | | | | | | | | | | | | Always check the mouse data we read for coordinates rather than asking the layer. This approach works whether we have layers enabled/window management enabled or any combination thereof. Also, make sure we use a software cursor when either of NO_WM or NO_LAYER is defined. Reviewed: Donald <qt-info@nokia.com>
| * Use BatchBlit in flush/exposeRegionAnders Bakken2009-07-222-35/+47
| | | | | | | | | | | | | | | | | | Minor optimization. Also make sure cursor is drawn in flush even if we're not in Offscreen mode. Reviewed-by: TrustMe
| * Use dfbsurface::FillRectangles in solidFillAnders Bakken2009-07-221-5/+15
| | | | | | | | | | | | Minor optimization Reviewed-by: Donald <qt-info@nokia.com>
| * Fix IDirectFBSurface::ReleaseSource callsAnders Bakken2009-07-222-2/+3
| | | | | | | | | | | | Make sure that these calls are in the right order. Reviewed-by: Donald <qt-info@nokia.com>
| * Fix dfbwindowsurface handling for offscreen modeAnders Bakken2009-07-222-127/+151
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * Rewrite QDFBScreen::exposeRegionAnders Bakken2009-07-222-176/+124
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This code should be a noop in the case where one has a proper dfb cursor and proper dfb window handling. This was the only case it actually worked. This patch makes it work for a screen cursor rendered by Qt and sets exposeRegion up to work for using an offscreen backing store. Since one can't query the background color set by directfb this patch also adds a connect option to set the background color. This is needed for erasing the background when the mouse cursor moves. Reviewed-by: Donald <qt-info@nokia.com>
* | Compile in release mode for DFB version > 0.9Anders Bakken2009-07-221-1/+6
| | | | | | | | | | | | Something went wrong with the integrate from 4.5 to master. Reviewed-by: TrustMe
* | Merge commit 'origin/4.5'Olivier Goffart2009-07-223-2/+3
|\ \ | |/ | | | | | | | | Conflicts: src/gui/graphicsview/qgraphicsscene.cpp src/gui/kernel/qt_cocoa_helpers_mac_p.h
| * Make sure DFB version macros are definedAnders Bakken2009-07-211-0/+1
| | | | | | | | Reviewed-by: Donald <qt-info@nokia.com>
| * s/slots/Q_SLOTS/Anders Bakken2009-07-202-2/+2
| | | | | | | | | | | | Fix QDirectFBMousePrivate and QDirectFBKeyboardPrivate Reviewed-by: TrustMe
* | Merge commit 'origin/4.5'Oswald Buddenhagen2009-07-2010-474/+396
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/3rdparty/webkit/VERSION src/3rdparty/webkit/WebCore/ChangeLog src/3rdparty/webkit/WebCore/generated/JSDOMWindow.cpp src/3rdparty/webkit/WebCore/page/DOMWindow.idl src/corelib/io/qdiriterator.cpp src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.cpp src/plugins/gfxdrivers/directfb/qdirectfbpixmap.h tests/auto/qxmlquery/tst_qxmlquery.cpp tools/linguist/lconvert/main.cpp
| * Prepare device in DFBPaintEngine::beginAnders Bakken2009-07-171-0/+2
| | | | | | | | | | | | | | 86ea4dbb5a748491656d9621ecd58238bc3e3d82 accidentally took out this line. Reviewed-by: TrustMe
| * Mark virtual functions as virtual in DFBPaintEngAnders Bakken2009-07-171-27/+26
| | | | | | | | | | | | Make the code easier to read. Reviewed-by: TrustMe
| * Remove unused function in QDirectFBPaintEngineAnders Bakken2009-07-172-34/+0
| | | | | | | | | | | | | | drawColorSpan is never called from anywhere so we might as well get rid of the code. Reviewed-by: TrustMe
| * Don't create dfbsurface in video mem if systemonlyAnders Bakken2009-07-171-1/+3
| | | | | | | | | | | | | | If DSCAPS_SYSTEMONLY is specified we shouldn't try to create the surface in video memory. Reviewed-by: TrustMe
| * Clean up directfb bit flippingAnders Bakken2009-07-178-69/+66
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * Don't assume that raster can do porter duff in dfbAnders Bakken2009-07-171-5/+1
| | | | | | | | | | | | | | PorterDuff should only be enabled if the raster engine says it is. E.g. if we're painting on a format with alpha. Reviewed-by: TrustMe
| * Clean up qdirectfbpaintengine.cppAnders Bakken2009-07-151-149/+150
| | | | | | | | | | | | | | | | - Move implementation of debug functions to the bottom of the file. - Move ImageCache stuff to under QDirectFBPaintEnginePrivate - Move SurfaceCache stuff to under QDirectFBPaintEnginePrivate Reviewed-by: Shane McLaughlin <Shane.McLaughlin@trolltech.com>
| * Don't force a lock in QDirectFBPaintEngine::clipAnders Bakken2009-07-152-27/+5
| | | | | | | | | | | | | | | | | | | | | | Pretty much every paint operation on DirectFB surfaces starts with a clipping operations which until now would always cause a IDirectFBSurface->Lock(). This was to make sure QRasterBuffer::prepare had been called so QClipData::initialize() would allocate a big enough array for its spans. We can safely not make QDirectFBPaintDevice::memory() return 0 until we actually fall back. Reviewed-By: Donald <qt-info@nokia.com>
| * Clean up rect/line drawing in dfb paintengineAnders Bakken2009-07-151-82/+63
| | | | | | | | | | | | | | | | Slight optimization by using the pluralized functions when possible. Also make templatized helper functions to avoid near-duplication of code for the float/int cases. Reviewed-by: Donald <qt-info@nokia.com>
| * Fix off by one bug in dfbpe::drawTiledPixmapAnders Bakken2009-07-151-4/+4
| | | | | | | | | | | | | | The drawTiledPixmap code iterated while x < right and y < bottom. This should be x <= right and y <= bottom. Reviewed-by: Donald <qt-info@nokia.com>
| * Fix QDirectFBPixmap::toImageAnders Bakken2009-07-131-0/+5
| | | | | | | | | | | | | | | | | | | | Preallocated surfaces can currently be copied to video memory behind our back. This means that we can not use this mechanism for toImage() In later versions of DirectFB this might be possible to toggle with a flag so I'll leave the code in there #if 0'ed Reviewed-by: Donald <qt-info@nokia.com>
| * Move ALPHA_PREMULTAnders Bakken2009-07-131-7/+7
| | | | | | | | | | | | | | It's only used once and I want to unclutter the top of qdirectfbpaintengine.cpp Reviewed-by: TrustMe