| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
QDirectFBPixmapData::transformed initializes a new QDirectFBPixmapData object
but doesn't set its serial number.
Reviewed-by: Donald Carr <donald.carr@nokia.com>
|
|
|
|
|
|
|
|
|
|
| |
Since we can't use RGB32 format with DirectFB (issues regarding Qt's
assumptions about the alpha byte) we need to explicitly convert images
of this type to the preferred alphaPixmap format.
This fixes an issue where RGB32 images get a curious gray alpha overlay.
Reviewed-by: Noam Rosenthal <noam.rosenthal@nokia.com>
|
|
|
|
|
|
|
|
| |
There's no need for the intermediate surface creation. RenderTo will
handle things like palette/transparency etc. Should also provide some
speedup.
Reviewed-by: Noam Rosenthal <noam.rosenthal@nokia.com>
|
|
|
|
| |
Reviewed-by: Trust Me
|
|
|
|
|
|
|
|
|
|
|
| |
This fix should optimize pixmap loading on most platforms and also fixes
a bug on a certain hardware where the alpha channel of an image was not
retained upon loading it.
This patch also takes care of handling dithering better in
QDirectFBPixmapData::fromImage().
Reviewed-by: Donald Carr <donald.carr@nokia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
| |
Reviewed-by: Donald Carr <donald.carr@nokia.com>
|
|
|
|
|
|
|
| |
Make sure the plugin builds but doesn't do anything when configured
without -plugin-gfx-directfb
Reviewed-by: Donald Carr <donald.carr@nokia.com>
|
|
|
|
|
|
| |
Make sure all files are wrapped in QT_NO_QWS_DIRECTFB
Reviewed-by: Donald Carr <donald.carr@nokia.com>
|
|
|
|
| |
Reviewed-by: Donald Carr <donald.carr@nokia.com>
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| | |
Reviewed-by: Trust Me
|
| |
| |
| |
| | |
Reviewed-by: Trust Me
|
| |
| |
| |
| |
| |
| |
| | |
Since QScopedPointer can take a custom cleanup handler we can use this
instead of the original QDirectFBPointer.
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If you define QT_DIRECTFB_IMAGEPROVIDER_KEEPALIVE we make sure atleast
one IDirectFBImageProvider is alive at all times.
Apparently this is refcounted by DirectFB on atleast one implementation
and there's considerable overhead involved when releasing the
last/creating the first image provider.
Reviewed-by: TrustMe
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Reimplement QPixmapData::fromFile/fromData to load images using
IDirectFBImage providers. This functionality might be accelerated on
embedded boards and could have potentially large performance
enhancements.
Reviewed-by: Donald Carr <donald.carr@nokia.com>
|
| |
| |
| |
| |
| |
| | |
Move format into QDirectFBPaintDevice.
Reviewed-by: Donald Carr <donald.carr@nokia.com>
|
| |
| |
| |
| | |
Reviewed-by: Donald Carr <donald.carr@nokia.com>
|
| |
| |
| |
| | |
Reviewed-by: Donald Carr <donald.carr@nokia.com>
|
| |
| |
| |
| |
| |
| |
| | |
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>
|
| |
| |
| |
| | |
Reviewed-by: Trust Me
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
|\ \
| |/
| |
| |
| |
| | |
Conflicts:
src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.cpp
src/plugins/gfxdrivers/directfb/qdirectfbpixmap.cpp
|
| |
| |
| |
| |
| |
| | |
Make sure surfaces always are locked when used as source for something.
Reviewed-by: TrustMe
|
| |
| |
| |
| | |
Reviewed-by: TrustMe
|
| |
| |
| |
| |
| |
| |
| |
| | |
Make sure we always set w, h and d.
See fa8030a935acaacee570eee320e7510a4cfdc853
Reviewed-by: TrustMe
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change moves the w, h, d variables to QPixmapData and introduces
is_null to keep track of nullness. This is possible only because
QPixmapData is internal API; otherwise we'd have to be smarter.
The optimization makes the QPixmap::width() function take 7 instructions,
down from 34 before. For the calculator demo in the declarative ui branch
this reduces a block of 750000 instructions (out of 30000000) to around
100000-150000 instructions.
Tested on Windows, Linux, Mac. Raster, X11 and OpenGL paint engines. Have
not tested the DirectFB engine.
Reviewed-by: Trond
|
|
|
|
| |
Reviewed-by: Trust Me
|
|
|
|
|
|
|
|
|
|
| |
Not sure to what extent it actually works but atleast it compiles now.
- A couple of image formats doesn't exist in 0.9
- IDirectFBSurface::ReleaseSource doesn't exist in 0.9
- IDirectFBWindow::SetBounds doesn't exist in 0.9
Reviewed-by: Donald <qt-info@nokia.com>
|
|
|
|
|
|
| |
We need to set alpha to the right value when copying pixmaps.
Reviewed-by: Donald <qt-info@nokia.com>
|
|
|
|
|
|
|
|
|
| |
Previously we allowed RGB32 but forced fallbacks for all drawing
operations. It turns out blitting operations doesn't work right either
so we'll rather just disallow this format altogether. See also
36ae58e7a6a888d3ae7bd162d59daada550bbfb1
Reviewed-by: Donald <qt-info@nokia.com>
|
|
|
|
|
|
| |
QDirecttFBPixmapData => QDirectFBPixmapData
Reviewed-by: TrustMe
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
| |
Reviewed-by: TrustMe
|
|
|
|
|
|
|
|
|
| |
Try harder to prevent blends by explicitly checking for alpha pixels in
the source image (unless asked not to).
Can be defined out by #defining QT_NO_DIRECTFB_OPAQUE_DETECTION
Reviewed-by: Donald <qt-info@nokia.com>
|
|
|
|
|
|
|
| |
It seems DirectFB doesn't preserve alpha value of a blit unless BLEND is
specified and if it is we need to Clear to transparent first.
Reviewed-by: TrustMe
|
|
|
|
|
|
| |
QDirectFBPaintDevice's know their screen. No need to use instance() in
these cases.
Reviewed-by: TrustMe
|
|
|
|
|
|
|
|
| |
DirectFB caches the last source surface in the target surface after a
Blit. This can cause a surface to be kept around longer than desired
since the caching increases the ref-count. Unless it's likely that the
blit will happen again soon we Release the source.
Reviewed-by: TrustMe
|
|
|
|
|
|
|
|
|
| |
This is essentially a return to the earlier version of toImage(). Use a
preallocated surface that operates on the returned image to do the
conversion. If this causes drawing bugs it is likely a bug in the
directfb driver and can be worked around by compiling with
QT_NO_DIRECTFB_PREALLOCATED.
Reviewed-by: TrustMe
|
|
|
|
|
|
|
|
|
| |
Need to set blitting flags before blitting from a surface with alpha
channel. Otherwise alpha areas become white.
For some reason setting the porterduff to DSPD_SRC does not fix this.
Reviewed-by: TrustMe
|
|
|
|
|
|
| |
Make sure we retain the alpha channel of the original surface.
Reviewed-by: TrustMe
|
|
|
|
|
|
| |
Make sure we keep retain alpha if there is one in the source.
Reviewed-by: TrustMe
|