summaryrefslogtreecommitdiffstats
path: root/src/plugins/gfxdrivers
Commit message (Collapse)AuthorAgeFilesLines
* Fixed wrong function name in warningAnders Bakken2009-05-121-3/+3
| | | | Reviewed-by: Donald <qt-info@nokia.com>
* initialize all DFBSurfaceDescriptions to 0Anders Bakken2009-05-111-1/+6
| | | | | | Since this is C there are no constructors. Reviewed-by: Donald <qt-info@nokia.com>
* Remove unused variableAnders Bakken2009-05-111-1/+0
| | | | Reviewed-by: TrustMe
* Fix a type in warningAnders Bakken2009-05-111-1/+1
| | | | | | QDirecttFBPixmapData => QDirectFBPixmapData Reviewed-by: TrustMe
* Whitespace fixAnders Bakken2009-05-071-1/+1
| | | | Reviewed-by: TrustMe
* Use proper ways to create "window" surfaceAnders Bakken2009-05-061-9/+1
| | | | Reviewed-by: TrustMe
* Improved debug output for directfb:debugAnders Bakken2009-05-061-6/+10
| | | | | | Include info on the primary surface pixelformat. Reviewed-by: TrustMe
* Pass the scale parameter as an int.Anders Bakken2009-05-061-1/+1
| | | | | | We're just printout out the integer value anyway. Reviewed-by: TrustMe
* Make Scale publicAnders Bakken2009-05-061-1/+3
| | | | | Needed for fallback warnings Reviewed-by: TrustMe
* Cleaned up codeAnders Bakken2009-05-051-24/+20
| | | | | | | | | Put all variables in the same area for QDirectFBPaintEnginePrivate. Make QDirectFBPaintEngine a friend. Also, do away with setClipDirty and replace it with d->clipDirty = true; Reviewed-by: TrustMe
* Cleaned up codeAnders Bakken2009-05-051-439/+443
| | | | | | | Move private functions to the bottom of the file to be more in line with how most qt cpp files are structured. Reviewed-by: TrustMe
* Refactored image cachingAnders Bakken2009-05-057-141/+147
| | | | | | | | | | | Make image caching a lot cleaner and more sensible. By default we do not cache images since creating a preallocated surface is quick and we don't really want to waste memory. In the case where the driver does not support preallocated surfaces you can enable image caching to speed up drawImage. Reviewed-by: TrustMe
* Make sure image caching works with Qt3SupportAnders Bakken2009-05-051-0/+1
| | | | | | | | | Store whether qt was built with qt3support enabled in .qmake.cache. We need this info to decide if QT3_SUPPORT should be defined when we include qimage_p.h. Otherwise we get data corruption issues since the size of struct in Qt is larger than the one we include in libqdirectfb. Reviewed-by: Donald <qt-info@nokia.com>
* Cleaned up code a littleAnders Bakken2009-05-051-41/+28
| | | | | | Made SurfaceCache entirely inline for better readability. Reviewed-by: TrustMe
* Don't call prepare more than necessaryAnders Bakken2009-05-053-22/+37
| | | | | | | | | | | Store the memory address of our last QRasterBuffer::prepare() call to make sure we reprepare if someone has unlocked and locked the device behind our back. Also optimize QDirectFBDevice::memory() since it might get called a fair bit. Reviewed-by: Donald <qt-info@nokia.com>
* DirectFB can't handle "mirrored" scalesAnders Bakken2009-05-051-14/+23
| | | | | | | | Fall back to raster engine when using a transform with m11 < 0 || m22 < 0. Task-number: 252921 Reviewed-by: Donald <qt-info@nokia.com>
* Improved debug outputAnders Bakken2009-05-051-30/+30
| | | | | | | Format the debug info on blitting, drawing and acceleration capabilities better. Reviewed-by: TrustMe
* Add QMAKE_INCDIR_POWERVR to specify the location of pvr2d.h & wsegl.hTom Cooksey2009-05-054-4/+11
| | | | | | | | Allow setting of a QMAKE_INCDIR_POWERVR in the mkspec to specify where the pvr2d.h & wsegl.h files are located. Set to src/3rdparty/powervr to use the headers distributed with Qt (for SGX-based SoCs). Reviewed-by: Trustme
* Add headers required for building PowerVR driverTom Cooksey2009-05-051-3/+4
| | | | | | | | | | | | | | | | The PowerVR driver on Qt for Embedded Linux needs to use Imagination Techologies' proprietary pvr2d & wsegl APIs. These are the headers for those APIs, allowing the powervr driver to be built. Ideally, these headers would be provided as part of the SDK supplied by chipset vendors. For now, we include these headers to let people get going with the driver. Licence headers were approved by legal for inclusion into Qt, after some negotiation with ImgTec (who have also approved their inclusion into Qt). The headers have also passed a scan by Talko, provided the licence headers aren't touched. Reviewed-by: Paul
* Rename QDirectFBSurface to QDirectFBWindowSurfaceAnders Bakken2009-05-045-34/+34
| | | | | | | This helps avoid confusion between IDirectFBSurface and QDirectFBSurface. Reviewed-by: Donald <qt-info@nokia.com>
* Lock for read only when possibleAnders Bakken2009-05-049-25/+40
| | | | | | | | | | From benchmarking I've established that surface->Lock(DSLF_READ) is faster than surface->Lock(DSLF_WRITE) which is faster than surface->Lock(DSLF_READ|DSLF_WRITE). This patch will make us Lock for read only, when possible. Reviewed-by: Donald <qt-info@nokia.com>
* Implemented an option to tune flippingAnders Bakken2009-05-044-3/+11
| | | | | | | | export QWS_DISPLAY=directfb:boundingrectflip to enable calling Flip on the bounding rect of the dirtied area rather than each dirty rectangle. This could be faster if you update many small rectangles. Reviewed-by: TrustMe
* Beautified codeAnders Bakken2009-05-022-17/+17
| | | | | | Qt's coding style => Object *ptr, not Object* ptr Reviewed-by: TrustMe
* Improve debug output (in debug mode only)Anders Bakken2009-05-011-2/+83
| | | | | | | Print out detailed information about acceleration mask, blitting flags and drawing flags when passing debug. Reviewed-by: Donald <qt-info@nokia.com>
* Extended surface capabilitiesAnders Bakken2009-05-012-6/+31
| | | | | | | Clean up code and make it possible to set more DFBSurfaceCapabilities on the primary surface. Also allow users to force systemonly for the surfaces.
* Cleaned up surface creation codeAnders Bakken2009-05-014-34/+28
| | | | | | | | Since I am taking a copy of the description anyway it makes sense to just pass this light-weight object in as a copy rather than a const pointer. Reviewed-by: Donald <qt-info@nokia.com>
* Improved readability of the flip codeAnders Bakken2009-05-011-7/+2
| | | | Reviewed-by: Donald <qt-info@nokia.com>
* Fixed possible crash in QDirectFBPaintEngine::clipAnders Bakken2009-05-011-1/+1
| | | | | | | d->clip() might return 0 at this point so make sure we check before accessing it. Reviewed-by: TrustMe
* Remove superfluous call to base classAnders Bakken2009-04-291-2/+2
| | | | | | | | Make code more readable by not chaining to QScreenCursor for hide/show. Since hwaccel is true we don't need the exposeRegion call anyway. Reviewed-by: TrustMe
* Cleaned up mouse/cursor codeAnders Bakken2009-04-293-33/+28
| | | | | | | | | The enabling/disabling of the Cursor belongs in the QDirectFBMouseHandler class and not in the QDirectFBScreenCursor. Even if we use the Qt software cursor we need the events to come in from the mouse handler. Reviewed-by: TrustMe
* Fixed cursors with QT_NO_DIRECTFB_PREALLOCATEDAnders Bakken2009-04-291-75/+75
| | | | | | | | | | Refactor cursor management code to do. No need to change the cooperative level four times for each show/hide. Simplify code a little. Also we used to disable the cursor when we wanted to hide it which meant that we no longer received mouse events. Reviewed-by: Donald <qt-info@nokia.com>
* Fold boolean options into flagsAnders Bakken2009-04-284-20/+21
| | | | | | | Instead of having multiple bool QDirectFBScreen::.* getters I added DirectFBFlags QDirectFBScreen::directFBFlags() function. Reviewed-by: TrustMe
* Added an option for ignoring the system clipAnders Bakken2009-04-283-10/+23
| | | | | | | | | | | | This is currently the only way I can make QGraphicsView not have to fall back to the raster engine for all operations. It seems the QRegion passed to the paintEvent of QGraphicsView also is set as the systemClip which in the end makes the QRasterPaintEngine's clipRegion equal the systemClip. By exporting QWS_DISPLAY=directfb:ignoresystemclip you can now draw without having a complex clip and therefore take advantage of hw acceleration with DirectFB. Reviewed-By: Donald <qt-info@nokia.com>
* Make the disable/warn on fallbacks more flexibleAnders Bakken2009-04-282-52/+82
| | | | | | | | | | | | | | | Allow programmers to select which operations they want to warn on/disable and which not to. To warn for DRAW_PIXMAP only you can do this: DEFINES += QT_DIRECTFB_WARN_ON_RASTERFALLBACKS=DRAW_PIXMAP To include fillRect you can do: DEFINES += \"QT_DIRECTFB_WARN_ON_RASTERFALLBACKS=DRAW_PIXMAP|FILL_RECT\" Reviewed-by: Donald <qt-info@nokia.com>
* Cleaned up constness errorsAnders Bakken2009-04-281-14/+16
| | | | | | | | | | All these drawing functions really shouldn't be const even if some of them can be. They should never be called from const functions and when/if they change pen/brush stuff they cease being able to be const. Also make sure fillRegion() uses the right brush. Reviewed-by: Donald <qt-info@nokia.com>
* Use PVR2DGetFrameBuffer to map screen 0Rhys Weatherley2009-04-282-22/+48
| | | | | | | | | Some PowerVR chipsets are unstable if mmap/PVR2DMemWrap is used to map screen 0 instead of using PVR2DGetFrameBuffer. This change makes the driver use PVR2DGetFrameBuffer for screen 0 and mmap/PVR2DMemWrap for all other screens. Reviewed-by: Julian de Bhal
* Remove the simpleBrush conceptAnders Bakken2009-04-242-1/+85
| | | | | | | | | | | | Since we have to update the brush for each paint command anyway keeping the state of the brush and caching the value of simpleBrush makes no sense. Also, most times when filling with a brush QPaintEngineEx::fillRect(const QRect &, const QBrush &) is called in which we never got a brushChanged() anyway. Reviewed-by: Donald <qt-info@nokia.com>
* Remove the simpleBrush conceptAnders Bakken2009-04-232-29/+20
| | | | | | | | | | | | Since we have to update the brush for each paint command anyway keeping the state of the brush and caching the value of simpleBrush makes no sense. Also, most times when filling with a brush QPaintEngineEx::fillRect(const QRect &, const QBrush &) is called in which we never got a brushChanged() anyway. Reviewed-by: Donald <qt-info@nokia.com>
* Convert bitmaps to alpha pixmap formatAnders Bakken2009-04-221-2/+2
| | | | | | | | Ideally we'd let raster pixmap data handle this but QPixmap::fromImage creates a QPixmapData::PixmapType regardless of the bit depth of the image so we have to handle this case. Reviewed-by: Donald <qt-info@nokia.com>
* CompileAnders Bakken2009-04-221-2/+2
| | | | Reviewed-by: TrustMe
* Kill some warningsAnders Bakken2009-04-222-3/+5
| | | | | | | Refactor two small things so that we don't get warnings when QT_DIRECTFB_NO_(OPAQUEDETECTION|MOUSE|KEYBOARD) is defined Reviewed-by: Shane McLaughlin <Shane.McLaughlin@trolltech.com>
* Unify IDirectFBSurface->Lock() callsAnders Bakken2009-04-224-46/+58
| | | | | | | | | | | | | | | | Certain compilers warns on this kind of code: uchar *mem = ...; (void**)(&mem) dereferencing type punned pointer etc. Since we had this for every call to Lock I put it all into a convenience function. Also fix some issues where we memcpy'ed more bytes than necessary (when stride != w * depth() / 8) and fix issue with QDirectFBScreen::solidFill with pixelFormat == RGB32 Reviewed-by: Donald <qt-info@nokia.com>
* Take out STATIC_ALLOC of primary surface creationAnders Bakken2009-04-221-7/+7
| | | | | | | We never resize this surface anyway so it's not necessary. Make it possible to enable with an option. Reviewed-by: Donald <qt-info@nokia.com>
* Fix some keyboard issuesAnders Bakken2009-04-211-18/+112
| | | | | | | | Without this patch Alt-modifiers doesn't work. The extra mappings are needed for certain keys to work right on atleast one known DirectFB implementation/hardware combination. Reviewed-by: Donald <qt-info@nokia.com>
* Beautify displayArgs parsingAnders Bakken2009-04-091-12/+18
| | | | | | | | Also add support for setting the width and height of the primary surface using display arguments (which can be good when debugging performace issues). Reviewed-by: Donald <qt-info@nokia.com>
* Take out the DSCAPS_TRIPLE when not blittingAnders Bakken2009-04-091-7/+0
| | | | | | | | | | When this code was written there was never a case when we would not blit our flips and hence the entire if (!(flipFlags & DSFLIP_BLIT)) business seems not to have been tested anyway. Since I don't see the point of this I am taking it out. Might enable us to actually create the primary surface in video memory more often. Reviewed-by: TrustMe
* Better warnings when primary is not in videomemAnders Bakken2009-04-091-3/+5
| | | | | | | If connect options are set to include videoonly and creating the primary surface in video memory fails warn even in release mode. Reviewed-by: TrustMe
* Clean up code a little and get rid extra memcpysAnders Bakken2009-04-091-48/+3
| | | | | | | | | The QVarLengthArray approach makes no sense with DirectFB. Draw.*s is a regular function call and the receiving function even memcpy's the data on arrival anyway. Just call the Draw.* functions one by one Reviewed-by: TrustMe
* Fix setOpacityAnders Bakken2009-04-091-6/+8
| | | | | | | | Opacity doesn't play well with PorterDuff so we need to disable the porter duff when opacity is set. Also the DSBLIT_SRC_PREMULTCOLOR flag is not the right thing for us. Reviewed-by: TrustMe
* Inline hasAlphaChannel and add pixelFormat getterAnders Bakken2009-04-092-7/+2
| | | | Reviewed-by: TrustMe