Commit Graph

130 Commits (f3c816befee4d0cd522e503b4eb04e1b3a892a6d)

Author SHA1 Message Date
Holger Hans Peter Freyther 7da24c14fd directfb: Use DirectFBErrorFatal for errors we don't handle well
In case we fail to initialize DirectFB, use the DirectFBErrorFatal
to quit as there is no way we can recover from this error and the
QPA backend has already been selected.

Change-Id: I8001bf32d0a14ba21c2ec13121748a6384b87c2b
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
2011-11-24 12:11:04 +01:00
Holger Hans Peter Freyther 6b22448fa3 directfb: Access the screen layer through QWindow::screen()
Instead of assuming which layer was assigned to Qt, resolve the to
be used layer via QWindow::screen()->handle(). Add a method to the
DirectFB QPlatformScreen to provide a pointer to the IDirectFBDisplayLayer

Change-Id: Iaea9466ca84daff752a4932deafbe38f48123715
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
2011-11-24 08:31:02 +01:00
Holger Hans Peter Freyther 0948237d7f directfb: Move QDirectFbScreen into a separate file
The screen handling will get a bit more complex due the integration
of different ways to do OpenGL. Move to a new file.

Change-Id: Ibe3e397d13da1b270ec4afaf046d28be50e976f9
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
2011-11-24 08:29:09 +01:00
Holger Hans Peter Freyther c7df1af337 [directfb] Implement grab/ungrab of keyboard/pointer
Change-Id: Ie2b99bb659e324c63bfd23e96d6c89c13a8df3b4
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
2011-10-21 16:54:45 +02:00
Holger Hans Peter Freyther 960502d91a [directfb] Remove grabbing of the pointer on input
This should not be done on the input level but we should handle the
requests on the QWindow to grab/ungrab the pointer

Change-Id: Ibc61b300bf8de20f576fb8972fadf18de4a142c1
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
2011-10-21 16:54:45 +02:00
Holger Hans Peter Freyther c8746d886f [directfb] Implement QPixmap::fromFile using DirectFB routines
The code is based on Qt 4.8 DirectFB support, it was reduced
in size (cosmetic changes, by using the outPtr()) and it has a
bugfix to pass loadAsBitmapOrPixmap that assumes the loadFromFile
routine will add '.png' and other extensions to the file.

Change-Id: I25b11206053c02be5c04730fba5bb42bd07426d1
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
2011-10-21 16:54:45 +02:00
Holger Hans Peter Freyther b1c803a925 [directfb] Prepare to select the alpha/opaque pixel formats
Right now we assume to use 32bpp but depending on the hardware
this might not be optimal at all. Begin to prepare the code for
not having a 32bpp surfaces.

Change-Id: Iedfa49c568559e074dfaeae2a216c9eb93721d2c
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
2011-10-21 16:54:45 +02:00
Holger Hans Peter Freyther d43775b93b [directfb] Manage the font database with a QScopedPointer
Attempt to fix a memory leak on exit by deleting the font database.

Change-Id: I07b0865c97bb8ef26950bf231b5239ca01e95c56
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
2011-10-21 16:54:45 +02:00
Holger Hans Peter Freyther 577d51ee22 [directfb] Remove some duplication in the QDirectFbBlitter c'tor.
Introduce dfb_blitter_capabilities that returns the QBlittable::Capabilities
of the DirectFB blitter.

Change-Id: Ifb803ff4f07376d5333ad2d05ff72d9a63d17fff
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
2011-10-21 16:54:45 +02:00
Holger Hans Peter Freyther 91e99d1420 directfb: Initialize m_dfb after DirectFBInit has been called
The QDirectFBIntegration is responsibe for deleting the DirectFB
instance but it can only initialize the DirectFB instance after
the DirectFBInit has been called. Change the order. This issue
got introduced by myself in 3faa89f4.

Change-Id: Ia67d439152d895e2e0a47f35eed57348c629f79f
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
2011-10-21 16:54:45 +02:00
Holger Hans Peter Freyther 500dc2a6f8 [directfb] Introduce the QDirectFBPointer from QWS/gfxdrivers
Introduce QDirectFBPointer and use it throughout the code to
fix various resource leaks in the DirectFB backend. Fix the surface
ownership of the IDirectFBSurface in the Blittable/BackingStore
code.

Change-Id: I0d4572eaab80b3558e644f26d76222461bf37bbb
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
2011-10-21 16:54:45 +02:00
Holger Hans Peter Freyther 405894fc39 [directfb] Make QDirectFBInput a QThread to allow proper exits
Without this patch the application will get stuck waiting for the
IDFBEventBuffer to report an event. We will use the
IDFBEventBuffer::WakeUp function to interrupt the waiting but this
produces the below error on exit:
QEventLoop: Cannot be used without QApplication
QThread: Destroyed while thread is still running

This is solved by making the QDirectFBInput a QThread, reimplement
the run() method to handle the events. It should work as this is
only posting events to the QApplication event loop.

Change-Id: I24adf2b080f96c72ede6a5499f484ac33fdd44fc
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
2011-10-21 16:54:45 +02:00
Holger Hans Peter Freyther acd09c21f7 [directfb] Use QScopedPointer to manage heap allocated objects
Use QScopedPointer to avoid trying to manually delete objects. For
some of the cases the leak would only be viewable when things are
getting shut down. Leave in some more warnings for cleaning it up,
e.g. the m_eventBuffer of the Input is leaked and the input task will
only stop after another key event.

Change-Id: Ic54568343605b4ab7094a7dece40e22250184a37
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
2011-10-21 16:54:45 +02:00
Holger Hans Peter Freyther 9e54d1deab [directfb] Fix memory leak when passing arguments to directFB
We need to delete the array but also the elements inside it.

Change-Id: Ib61beeca569802638b9ff3b94ede79c0beebb399
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
2011-10-21 16:54:45 +02:00
Holger Hans Peter Freyther 421abf8d59 [directfb] Do not call a pure virtual function
In 688d9f6ec0 the base class
was changed from QWindowSurface to QPlatformBackingStore but
QPlatformBackingStore::resize is pure virtual now.

Change-Id: Ib36f177d80e9458e7e8e34f587e4554c0462e35c
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
2011-10-21 16:54:45 +02:00
Holger Hans Peter Freyther d8fc8aa585 [directfb] Rename class from WindowSurface to BackingStore
Catch up with the naming by renaming the file from windowsurface
to backingstore, update the class names and include files.

Change-Id: I1b16826b60c19490946a77f61518e18f8099adce
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
2011-10-21 16:54:45 +02:00
Holger Hans Peter Freyther ab50b60f5c [blitter] Work on tst_QPixmap::clear()
By default QPixmap may not hasAlphaChannel(), only if setMask()
or fill() with a transparent color is called a QPixmap will
hasAlphaChannel().

Make the QBlittablePlatformPixmap remember if there is an alpha
channel, pass this as parameter in createBlittable to make it
clear that this is required and not optional.

Update the DirectFB plugin to handle this parameter to create a
RGB32 or ARGB Surface depending on the alpha value, also only use
PreMultiplied alpha when using ARGB. Separate the two constructors
for the QDirectFbBlitter to either adopt a DirectFB Surface or to
create one.

Change-Id: I8abf82408ecd2d075fc6f241ace8be2a34ac56e7
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
2011-10-21 16:54:45 +02:00
Samuel Rødal 7d2cfbe5aa Improved logical and physical DPI APIs.
Made physicalSize() return QSizeF instead, to prevent rounding errors.
Added logicalSize() as the base to compute font pixel sizes instead, and
added convenience functions in QScreen to access the logical and
physical sizes and DPI metrics.

Task-number: QTBUG-21736
Task-number: QTBUG-21737
Change-Id: Ic705dc98eb3632617659e65a0c9a552673dc0c65
Reviewed-on: http://codereview.qt-project.org/5888
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2011-10-06 09:36:39 +02:00
Holger Hans Peter Freyther 68da915373 [fontdatabase] Use the CONFIG += qpa/genericunixfontdatabase
Late follow up of fc9a648dc0 that
tries to make plugins indifferent of where the source is located
in relation to qtbase.

Change-Id: I9a5944fe737056216c7174d8d9151c8d0e776a22
Merge-request: 64
Reviewed-on: http://codereview.qt-project.org/5933
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2011-10-03 17:25:57 +02:00
Gunnar Sletta b62bd0584a Merge branch 'refactor'
Conflicts:
	mkspecs/qws/linux-lsb-g++/qmake.conf
	src/gui/image/qpixmap_mac.cpp
	src/gui/painting/qpaintengine_x11.cpp
	src/gui/painting/qtessellator.cpp
	src/gui/text/qfontengine_qws.cpp
	src/gui/text/qfontengine_x11.cpp
	src/gui/widgets/qlinecontrol.cpp
	src/opengl/qgl.h
	src/opengl/qgl_x11egl.cpp
	src/plugins/plugins.pro

Change-Id: If52dcd55cd55f2983a756c2f843967702b60a310
2011-09-13 08:54:45 +02:00
Holger Hans Peter Freyther 7b42532100 directfb: Include directfbgl.h directly
directfb.h is included directly in all other files, include
directfbgl.h without the directfb/ prefix as well.

$ pkg-config --cflags directfb
-D_REENTRANT -I/home/foo/install/directfb/include/directfb

Merge-request: 2643
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>

(cherry picked from commit 647ffa677f9bf6da50fcdb7a6948501e7e6719ce)

Change-Id: If96f378a95e7790132e89f934341977520367018
Reviewed-on: http://codereview.qt-project.org/4579
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2011-09-12 16:03:47 +02:00
Samuel Rødal 6e28e8441b Copy core GL functionality to QtGui with QGL -> QOpenGL naming.
Change-Id: Ibc989afa4a30dd184d41d1a1cd89f97196e48855
Reviewed-on: http://codereview.qt.nokia.com/3710
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
2011-08-29 10:25:24 +02:00
Holger Hans Peter Freyther 30c23971d0 directfb: Follow coding standards, add hints of memleaks, remove vars
Use m_ for all member variables, document some classes that appear
to lack proper destruction, remove unused variables from classes.

Change-Id: Icec451149fa5d562d8d5f54cbe9a1aa1518bfc48
Reviewed-on: http://codereview.qt.nokia.com/3667
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2011-08-26 13:35:49 +02:00
Holger Hans Peter Freyther 688d9f6ec0 directfb: Convert the directfb plugin, disable the OpenGL support
OpenGL was never tested and the platform integration has changed,
remove it from the build and re-enable it once one can test it.

Change-Id: I70d5b5b11de06e6e999d3aae44660f11d2dbc719
Reviewed-on: http://codereview.qt.nokia.com/3666
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2011-08-26 13:35:11 +02:00
Samuel Rødal 310519d6d1 Rename QPixmapData to QPlatformPixmap.
Makes the API symmetric with the other Lighthouse APIs.

Change-Id: I8a399f3c968ea35d4624711b31f2ac5bb94b7893
Reviewed-on: http://codereview.qt.nokia.com/1735
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
2011-07-19 09:50:37 +02:00
Morten Sorvig 4efaf305f5 Add lighthouse event dispatcher API.
Platform plugin creation is now moved forward in
order to have a platform plugin instance at event
dispatcher creation time.

Plugins are now responsible for implementing
PlatformIntegration::createEventDispatcher and returning
an QAbstractEventDispatcher subclass.
2011-06-22 09:47:49 +02:00
axis a8814fcb69 Made qpluginbase.pri into a feature profile.
This enables other modules to use it without having access to the
QtBase sources.

Change-Id: I0a588b2e14ca88fa068c7c2bcc69ff669444f6c6
Task: QTBUG-19585
Reviewed-on: http://codereview.qt.nokia.com/237
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2011-05-31 12:51:29 +02:00
Jyri Tahtela f9f395c28b Update licenseheader text in source files for qtbase Qt module
Updated version of LGPL and FDL licenseheaders.
Apply release phase licenseheaders for all source files.

Reviewed-by: Trust Me
2011-05-24 12:34:08 +03:00
axis 2e1af58417 Introduced the QT.<module>.plugins variable to module profiles. 2011-04-27 12:06:02 +02:00
Qt by Nokia 38be0d1383 Initial import from the monolithic Qt.
This is the beginning of revision history for this module. If you
want to look at revision history older than this, please refer to the
Qt Git wiki for how to use Git history grafting. At the time of
writing, this wiki is located here:

http://qt.gitorious.org/qt/pages/GitIntroductionWithQt

If you have already performed the grafting and you don't see any
history beyond this commit, try running "git log" with the "--follow"
argument.

Branched from the monolithic repo, Qt master branch, at commit
896db169ea224deb96c59ce8af800d019de63f12
2011-04-27 12:05:43 +02:00