| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
| |
Reviewed-by: Trust Me
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
| |
If we're asking for the stride it's very likely the next thing we'll do
is ask for the bits() so there's no good reason to unlock it again.
In the raster buffer case memory() will be called just before
bytesPerLine() so the code won't be hit but it's still the right thing
to do.
Reviewed-by: TrustMe
|
|
|
|
|
|
|
| |
Even though these variables couldn't really be used uninitialized GCC
4.3.2 thinks it could. This is nicer, more readable and faster anyway.
Reviewed-by: Donald <qt-info@nokia.com>
|
|
|
|
|
| |
Everything else capitalizes both the F and the B. s/Fb/FB/g
Reviewed-by: TrustMe
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Make sure all QDirectFBPaintDevice surfaces always are created with a
format that is either QScreen::pixelFormat() or
QDirectFBScreen::alphaPixmapFormat().
Also, clean up surface creation by providing more high level functions.
Fix a bug where we would assume that ARGB means
Format_ARGB32_Premultiplied and not Format_ARGB32.
Reviewed-by: Tom Cooksey
|
|
|
|
|
|
| |
No sense in locking every time we want the bpl. The bpl won't change
Reviewed-by: Tom Cooksey
|
|
|