summaryrefslogtreecommitdiffstats
path: root/src/plugins/gfxdrivers
Commit message (Collapse)AuthorAgeFilesLines
* Back port fixes from PowerVR driver in 4.6 to 4.5Rhys Weatherley2009-10-093-9/+16
| | | | | Pre-multiply fix: 01a671ff0bd380e5cff311cc233352c867a041a0 Painting performance: c3cfba7295c990d8135e1dd70b8cdbefd25615ab
* Fix support for 32-bit PowerVR screens with QGraphicsViewRhys Weatherley2009-10-021-5/+8
| | | | | | | | | | | | | When QGLWidget was used as a viewport for QGraphicsView, it was still treating the window surface as RGB16. Use the screen's actual pixel format. Also ensure that PvrEglWindowSurface::image() returns a non-null QImage if the drawable hasn't been created yet. Reviewed-by: trustme Back port of 53b3a0572242d0a425e74848afba1293f195d29b
* Fix compilation for systems with MBX PowerVR headers.Rhys Weatherley2009-09-181-0/+7
| | | | Reviewed-by: trustme
* Make the PowerVR screen driver for QWS compile against shipped headersTom Cooksey2009-09-171-2/+2
| | | | | | | | The pvr2d.h/wsegl.h headers we ship with Qt (in src/3rdparty/powervr) are meant for the PowerVR SGX. However, we use an MBX-specific define in the powervr driver. Reviewed-by: Jørgen Lind
* Update license headers again.Jason McDonald2009-09-0839-156/+156
| | | | Reviewed-by: Trust Me
* Update tech preview license header.Jason McDonald2009-08-3139-507/+507
| | | | Reviewed-by: Trust Me
* Update license headers.Jason McDonald2009-08-1139-39/+39
| | | | Reviewed-by: Trust Me
* 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-272-5/+1
| | | | Reviewed-by: Donald <qt-info@nokia.com>
* Fix off-by-one bug in QDirectFBScreen::flipSurfaceAnders Bakken2009-07-271-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-271-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-271-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>
* return when brush is NoBrush in DFBPaintEngineAnders Bakken2009-07-221-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>
* 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
* 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-161-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
* Remove QDirectFBPaintEnginePrivate::setOpacityAnders Bakken2009-07-131-9/+2
| | | | | | | The function only sets a variable anyway. Replace with: d->opacity = state()->opacity * 255 Reviewed-by: Donald <qt-info@nokia.com>
* Remove unused variables in QDirectFBPaintEngineAnders Bakken2009-07-131-4/+1
| | | | | | fbWidth/fbHeight were never used for anything Reviewed-by: Donald <qt-info@nokia.com>
* Code cleanup in QDirectFBPaintEngineAnders Bakken2009-07-131-13/+13
| | | | | | Take out the QPen member. Reviewed-by: Donald <qt-info@nokia.com>
* Clean up QDirectFBPaintEngine codeAnders Bakken2009-07-131-66/+71
| | | | | | | | | | | | | | | | - Remove unnecessary copy of QTransform - Fold matrixRotShear and scale into transformationFlags. Note that transformationFlags is not a proper bitset of the types of transform but rather set to the most complex operation (from QTransform::type()) and having NegativeScale added if qMin(transform.m11(), transform.m22()) < 0 - Fix a bug whereby setState didn't call setRenderHints - Make everything more readable - Don't initialize state in QDirectFBPaintEngine::begin() QDirectFBPaintEngine::setState will be called from QPainter::begin just before QDirectFBPaintEngine::begin Reviewed-by: Donald <qt-info@nokia.com>
* Fix QDFBPaintEngine::drawTiledPixmap/fillRectAnders Bakken2009-07-091-57/+111
| | | | | | | | | Until this fix very few cases of drawTiledPixmap and fillRect(r, textureBrush) have been handled by DirectFB. This patch makes it possible to accelerate such operations. Reviewed-By: Donald <qt-info@nokia.com>
* QDirectFBPaintEngine return if destRect is nullAnders Bakken2009-07-021-0/+2
| | | | Reviewed-by: Donald <qt-info@nokia.com>
* Better debug output for QDirectFBPaintEngineAnders Bakken2009-07-021-2/+5
| | | | | | Add unsupportedCompositionMode to the output. Reviewed-by: TrustMe
* We still need to Flip in NO_WM modeAnders Bakken2009-07-011-1/+1
| | | | | | This ifdef was simply in the wrong place. Reviewed-by: Donald <qt-info@nokia.com>
* Make sure we check the right deviceAnders Bakken2009-07-011-2/+2
| | | | | | Also. Make sure to call QRasterPaintEngine::end() Reviewed-by: Donald <qt-info@nokia.com>
* Code cleanupAnders Bakken2009-07-011-48/+36
| | | | | | | Move the code from QDirectFBPaintEnginePrivate::(end|begin) into QDirectFBPaintEngine::(end|begin) Reviewed-by: TrustMe
* Remove superfluous call to SetBlittingFlagsAnders Bakken2009-06-291-1/+0
| | | | | | We already do this in QDirectFBWindowSurface::scroll Reviewed-by: TrustMe
* Fix off by one bug in DirectFBPaintEngineAnders Bakken2009-06-241-2/+2
| | | | | | This bug made us call lock more than we needed to. Reviewed-by: Donald <qt-info@nokia.com>
* Fix a rendering issueAnders Bakken2009-06-242-3/+8
| | | | | | Make sure surfaces always are locked when used as source for something. Reviewed-by: TrustMe