Samuel Rødal [Wed, 11 May 2011 10:39:14 +0000 (12:39 +0200)]
Compile fixes after merge.
Samuel Rødal [Wed, 11 May 2011 10:39:09 +0000 (12:39 +0200)]
Merge remote branch 'staging/master' into refactor
Conflicts:
src/gui/painting/qdrawhelper_p.h
src/gui/painting/qgraphicssystemfactory.cpp
src/gui/painting/qpainter.cpp
src/gui/painting/qunifiedtoolbarsurface_mac.cpp
src/gui/painting/qunifiedtoolbarsurface_mac_p.h
src/openvg/openvg.pro
src/openvg/qpaintengine_vg.cpp
src/openvg/qwindowsurface_vg.cpp
src/openvg/qwindowsurface_vgegl.cpp
src/plugins/platforms/wayland/qwaylanddisplay.cpp
src/widgets/graphicsview/qgraphicsscene.cpp
Laszlo Agocs [Tue, 10 May 2011 16:03:43 +0000 (18:03 +0200)]
Prevent crash in wayland mimedata in case there is no offer.
Laszlo Agocs [Tue, 10 May 2011 08:09:44 +0000 (10:09 +0200)]
Remove const from QPlatformClipboard::mimeData().
Most implementations will anyway do non-const operations in there, the
change avoids the need for const_cast or mutable.
Laszlo Agocs [Tue, 10 May 2011 07:17:27 +0000 (09:17 +0200)]
Retrieve the actual data in the Wayland clipboard only when requested.
Jonni Rainisto [Mon, 9 May 2011 14:55:33 +0000 (16:55 +0200)]
Turned on private headers for some plugins.
Reviewed-by: axis
Samuel Rødal [Mon, 9 May 2011 12:08:19 +0000 (14:08 +0200)]
Wayland plugin compile fixes.
Laszlo Agocs [Fri, 6 May 2011 16:36:43 +0000 (18:36 +0200)]
Added Wayland selection support.
Lars Knoll [Sat, 7 May 2011 20:25:30 +0000 (22:25 +0200)]
QTDIR/src compiles again
Samuel Rødal [Fri, 6 May 2011 10:12:00 +0000 (12:12 +0200)]
Fixed compilation of Wayland plugin.
Lars Knoll [Wed, 4 May 2011 10:04:43 +0000 (12:04 +0200)]
Merge remote branch 'origin/master' into refactor
Jørgen Lind [Tue, 3 May 2011 11:00:50 +0000 (13:00 +0200)]
Remove warnings
(cherry picked from commit
9625c564877414695a9706acf34bc8719018ef06)
Jørgen Lind [Tue, 3 May 2011 06:57:49 +0000 (08:57 +0200)]
Fix Wayland plugin so it works with the wayland bind api
This is mostly for the xcomposite api, but also we needed to readEvents
after doing a connect
(cherry picked from commit
16c054125949b8f8ceec9626156d8790254a63a2)
Kristian Høgsberg [Fri, 22 Apr 2011 01:14:43 +0000 (21:14 -0400)]
wayland: Track wayland changes
Pass version number when creating proxies, use wl_ prefix when looking
up interfaces and drop wl_egl_display.
(cherry picked from commit
c2adf9395214d711a3a40516c6c2afa64b3b4ca3)
Paul Olav Tvete [Tue, 3 May 2011 12:11:45 +0000 (14:11 +0200)]
Track QPlatformGLContext API changes
Paul Olav Tvete [Fri, 29 Apr 2011 14:02:36 +0000 (16:02 +0200)]
Make the wayland plugin compile
Paul Olav Tvete [Fri, 29 Apr 2011 11:04:43 +0000 (13:04 +0200)]
include file fix for wayland
Jørgen Lind [Tue, 26 Apr 2011 15:32:02 +0000 (17:32 +0200)]
Dont call QPlatformGLContext::makeCurrent from subclass
(cherry picked from commit
fc0a6ab220ab97b8f6acf90bf04b46de513a4d96)
axis [Tue, 22 Mar 2011 12:20:53 +0000 (13:20 +0100)]
Introduced the QT.<module>.plugins variable to module profiles.
Jørgen Lind [Thu, 14 Apr 2011 13:48:36 +0000 (15:48 +0200)]
Remove hasOpenGL. This changes breaks binary compatibillity
so you will need to use $QTBUILDDIR/bin/syncqt and recompile all
applications
Jørgen Lind [Wed, 13 Apr 2011 13:04:53 +0000 (15:04 +0200)]
Wayland: Conform with the api change in the frame callback
Samuel Rødal [Wed, 13 Apr 2011 06:49:52 +0000 (08:49 +0200)]
Remove DefaultSharedContext from Lighthouse API.
QPlatformWindowFormat::setUseDefaultSharedContext was meant as a
convenience, but it adds complexity in the platform plugin
implementation, and can be implemented by the above layers using
QPlatformWindowFormat::setSharedContext.
Reviewed-by: Jørgen Lind
Paul Olav Tvete [Mon, 11 Apr 2011 12:48:47 +0000 (14:48 +0200)]
Make readEvents() non-blocking
Another event handler could empty the Wayland socket after the
socket notifier has triggered, but before the signal is delivered.
Since wl_display_iterate is blocking, we have to test whether there
is data available to avoid freezing the whole application.
Reviewed-by: Samuel
Jørgen Lind [Mon, 11 Apr 2011 11:53:38 +0000 (13:53 +0200)]
Wayland: Show what backend is being used
Jørgen Lind [Mon, 11 Apr 2011 11:38:53 +0000 (13:38 +0200)]
Wayland: Tell what backend we use for xcomposite glx
Jørgen Lind [Mon, 11 Apr 2011 10:37:36 +0000 (12:37 +0200)]
Wayland: compile fix after making the event handling
single threaded
Jørgen Lind [Mon, 11 Apr 2011 08:41:40 +0000 (10:41 +0200)]
Make the xcomposite the default gl integration backend
The others can be opted in with the environment variable:
QT_WAYLAND_GL_CONFIG
Samuel Rødal [Mon, 11 Apr 2011 11:44:49 +0000 (13:44 +0200)]
Make sure the global listener gets registered even when using drm.
Jørgen Lind [Mon, 11 Apr 2011 07:00:14 +0000 (09:00 +0200)]
Wayland: Rename XPixmap GL integrations to Readback
Samuel Rødal [Fri, 8 Apr 2011 11:40:26 +0000 (13:40 +0200)]
Prevented crash due to dangling pointer in QWaylandInputDevice.
When a QWaylandWindow is destroyed we need to make sure it's not still
referenced by QWaylandInputDevice.
Jørgen Lind [Thu, 7 Apr 2011 16:02:15 +0000 (18:02 +0200)]
Wayland: Add license headers to new files
Jørgen Lind [Thu, 7 Apr 2011 15:54:23 +0000 (17:54 +0200)]
Wayland: Add a egl xcomposite backend
Samuel Rødal [Thu, 7 Apr 2011 14:25:02 +0000 (16:25 +0200)]
Made wayland plugin single-threaded, yay :)
Not calling QApplication::processEvents() in qt_init any more, and not
using a write socket notifier to send data over the wayland protocol.
Jørgen Lind [Thu, 7 Apr 2011 11:57:03 +0000 (13:57 +0200)]
Wayland: Fix xpixmap_glx readback after multi threading
Jørgen Lind [Wed, 6 Apr 2011 08:16:51 +0000 (10:16 +0200)]
Lighthouse: Implement xcomposite extension for wayland
Jørgen Lind [Thu, 31 Mar 2011 13:13:28 +0000 (15:13 +0200)]
After we make the QPlatformIntegration process events
Jørgen Lind [Thu, 31 Mar 2011 13:58:46 +0000 (15:58 +0200)]
Lighthouse: Make wayland event handling happen in a separate thread
Harald Fernengel [Wed, 6 Apr 2011 08:39:40 +0000 (10:39 +0200)]
qFatal() if no connection to wayland is available
abort here is the only thing that makes sense, otherwise, we'll get
crashes all over Qt.
Reviewed-by: Jørgen Lind
Samuel Rødal [Tue, 5 Apr 2011 08:12:45 +0000 (10:12 +0200)]
Make sure to delete wayland surface when QWaylandWindow is destroyed.
Samuel Rødal [Tue, 5 Apr 2011 07:38:46 +0000 (09:38 +0200)]
Implement QWaylandIntegration::hasOpenGL().
Jørgen Lind [Mon, 4 Apr 2011 10:19:57 +0000 (12:19 +0200)]
Lighthouse: Add drawable bit to the glx config selection rutine
So that we can use the same thing when creating glx pixmaps
Jørgen Lind [Mon, 4 Apr 2011 10:13:48 +0000 (12:13 +0200)]
Wayland: Allways have a userPtr for QWaylandWindow
So that we can use it without having to check for 0 in input handling
Conflicts:
src/plugins/platforms/wayland/qwaylandinputdevice.cpp
Samuel Rødal [Fri, 1 Apr 2011 12:26:42 +0000 (14:26 +0200)]
Fixed compilation of wayland plugin when there's no GL support.
Samuel Rødal [Fri, 25 Mar 2011 11:49:40 +0000 (12:49 +0100)]
Fixed typo.
Jørgen Lind [Fri, 25 Mar 2011 07:32:57 +0000 (08:32 +0100)]
Lighthouse: Wayland: Fix the readback for the glContext in the egl
backend
Jørgen Lind [Fri, 25 Mar 2011 07:23:53 +0000 (08:23 +0100)]
Lighthouse: Wayland: Print out what platformbackend we are using
Jørgen Lind [Thu, 24 Mar 2011 14:25:15 +0000 (15:25 +0100)]
Lighthouse: Move glx common code into shared files
Jørgen Lind [Thu, 24 Mar 2011 10:19:44 +0000 (11:19 +0100)]
Lighthouse: Wayland: Make QGLWidget work with the glx integration
Still missing same code for egl integration
Samuel Rødal [Thu, 24 Mar 2011 09:35:24 +0000 (10:35 +0100)]
Added missing -lX11 to xpixmap_glx wayland integration.
Jørgen Lind [Thu, 24 Mar 2011 08:57:38 +0000 (09:57 +0100)]
Lighthouse: Wayland. Added glx backend for gl integration
Jørgen Lind [Wed, 23 Mar 2011 16:11:28 +0000 (17:11 +0100)]
Lighthouse: Wayland Fix naming bug in the glintegration
Jørgen Lind [Wed, 23 Mar 2011 15:57:11 +0000 (16:57 +0100)]
Lighthouse: Wayland: Added a xpixmap readback glcontext
It uses a x11 pixmap to render all gl content into, then reads it back
using glReadPixels. Then it sends it over the wire like any other shm
surface.
Jørgen Lind [Wed, 23 Mar 2011 08:04:40 +0000 (09:04 +0100)]
Lighthouse: Wayland: Move the frame throttling into the platform window
This is only for the shm case
Jørgen Lind [Wed, 23 Mar 2011 06:01:56 +0000 (07:01 +0100)]
Lighthouse: Wayland, implement gl_integration
Jørgen Lind [Tue, 22 Mar 2011 07:41:49 +0000 (08:41 +0100)]
Lighthouse: Remove drm hack in pro file
Jørgen Lind [Thu, 17 Mar 2011 11:32:41 +0000 (12:32 +0100)]
Fixup license headers in Lighthouse plugins
Paul Olav Tvete [Mon, 14 Mar 2011 15:55:19 +0000 (16:55 +0100)]
Fix race condition in the non-GL case
Make sure to also flush output when waiting for an ack from the
compositor, in case we haven't sent the frame request yet.
Reviewed-by: Jørgen
Benjamin Franzke [Thu, 3 Mar 2011 16:01:01 +0000 (17:01 +0100)]
Lighthouse: Fix a block for wayland with gl support
The initialial readable iteration, needs to be done before
initializing egl, or it will be done inside egl.
The readable iteration after initialzing egl would block
forever otherwise.
Paul Olav Tvete [Wed, 2 Mar 2011 08:50:10 +0000 (09:50 +0100)]
Build fixes for the Wayland plugin
Add qmake.conf variables, and use the generic font plugin.
Reviewed-by: Jørgen
Gunnar Sletta [Mon, 21 Feb 2011 11:57:34 +0000 (12:57 +0100)]
added capabilites to QPlatformIntegration
Reviewed-by: Jørgen Lind
Paul Olav Tvete [Fri, 25 Feb 2011 11:56:28 +0000 (12:56 +0100)]
Avoid flicker
Don't start a new paint until we get an ack from the compositor
Reviewed-by: Samuel
Paul Olav Tvete [Thu, 24 Feb 2011 16:31:15 +0000 (17:31 +0100)]
Make it build when EGL is not available
Reviewed-by: Jørgen
Jørgen Lind [Fri, 11 Feb 2011 14:12:59 +0000 (15:12 +0100)]
Lighthouse:Propogate the configure event to the QWaylandWindow
Jørgen Lind [Fri, 11 Feb 2011 06:55:12 +0000 (07:55 +0100)]
Lighthouse: Wayland: Sort out egl includes in plugin
We used to include the X part of the eglplatform.h, but now the mesa
version of the header file has a WL_EGL_PLATFORM part. This define is
defined in wayland-egl.h which thus needs to be included before any egl
header file.
Jørgen Lind [Thu, 10 Feb 2011 09:09:18 +0000 (10:09 +0100)]
Lighthouse: Wayland compile-fix for egl interface change
Jørgen Lind [Thu, 10 Feb 2011 09:08:56 +0000 (10:08 +0100)]
Lighthouse: Wayland: Fix include
Jørgen Lind [Wed, 9 Feb 2011 14:16:14 +0000 (15:16 +0100)]
Lighthouse: Wayland: Use EGLSurface
Jørgen Lind [Mon, 7 Feb 2011 17:14:32 +0000 (18:14 +0100)]
Lighthouse Wayland: wayland-egl entry points where renamed
Conflicts:
src/plugins/platforms/wayland/qwaylanddisplay.cpp
src/plugins/platforms/wayland/qwaylanddrmsurface.cpp
Kristian Høgsberg [Sat, 5 Feb 2011 14:20:19 +0000 (09:20 -0500)]
wayland: Use wayland-egl instead of drm specific code
Jørgen Lind [Fri, 28 Jan 2011 07:38:10 +0000 (08:38 +0100)]
Lighthouse: Wayland, if we don't have cursors installed
or the configuration is faulty, then don't change cursors
Kristian Høgsberg [Thu, 27 Jan 2011 18:52:40 +0000 (13:52 -0500)]
wayland: Handle keyboard focus correctly
Activate the window widget and update modifiers.
Kristian Høgsberg [Thu, 27 Jan 2011 14:25:00 +0000 (15:25 +0100)]
Lighthouse: Wayland plugin. Only create depth and stencil buffers once
Jørgen Lind [Thu, 27 Jan 2011 11:36:51 +0000 (12:36 +0100)]
Remove unneeded include
Jørgen Lind [Tue, 25 Jan 2011 16:01:21 +0000 (17:01 +0100)]
Lighthouse: Wayland. Make the wayland integration closer to Lighthosue
Today there is a connection between QWidget and QPlatformScreen. So I
added a accessor in QWaylandScreen to get the corresponding
QWaylandDisplay. So now it should be possible to have different
QWaylandDisplays. But also its possible to use the internal Lighthouse
api closer in the wayland plugin if that should be of interest ;)
Jørgen Lind [Tue, 25 Jan 2011 13:48:25 +0000 (14:48 +0100)]
Lighthouse: Wayland, only make one fbo for the WaylandPaintDevice
Actually the fbo belongs to the QWaylandPaintDevice, which also holds n
QWaylandDrmBuffers. Then the QWaylandDrmWindowSurface gets the current
drmbuffer used on flush and attaches it to the window and calls
wl_surface_damage
Jørgen Lind [Fri, 21 Jan 2011 14:52:02 +0000 (15:52 +0100)]
Making clearer separation between responsibility of different classes
Ie. Moving code into different files and refactoring some of the
classes. The Drmbuffer was most affected.
It has a depth and stencil buffer.
QWaylandGLContext contain the context. The drm buffer class has to
be bound to the context before used.
Jørgen Lind [Mon, 10 Jan 2011 14:48:20 +0000 (15:48 +0100)]
Lighthouse:Wayland Moving some logic into files
Jørgen Lind [Wed, 5 Jan 2011 11:10:28 +0000 (12:10 +0100)]
Fix Wayland plugin to work with Wayland after some interfaces changed
such as
wl_display_create -> wl_display_connect
wl_surface_attach (attributes)
wl_surface_map -> wl_surface_map_toplevel
wl_shell_listener
wl_output_listener
Rolf Offermanns [Thu, 25 Nov 2010 11:13:30 +0000 (12:13 +0100)]
Fix for uninitialized member in QWaylandCursor
Without this patch Qt applications will crash the moment the mouse pointer
enters the window.
Signed-off-by: Rolf Offermanns <roffermanns@sysgo.com>
Benjamin Franzke [Sun, 21 Nov 2010 13:18:51 +0000 (14:18 +0100)]
wayland: use pkgconfig for libdrm in wayland.pro
On this system the IncludePath for drm.h was missing
So maybe pkgconfig should be additionally also used for
libxkbcommon, EGL and GLESv2 to prevent such problems.
but i dont know whether its common to use pkg-config in qmake
Jesse Barnes [Tue, 9 Nov 2010 20:44:18 +0000 (12:44 -0800)]
Wayland: request rbg and premultiplied argb visuals as needed
When creating DRM buffers we should try to match the visual type
requested with the buffer format.
Jesse Barnes [Mon, 8 Nov 2010 21:05:19 +0000 (13:05 -0800)]
Wayland: clamp window resizes to screen size
Jesse Barnes [Mon, 8 Nov 2010 20:24:09 +0000 (12:24 -0800)]
Wayland: split GL code into separate files
For clarity and to prevent merge conflicts etc. in future.
Jesse Barnes [Thu, 28 Oct 2010 23:18:15 +0000 (16:18 -0700)]
Wayland: use correct viewport for swapBuffers and correct coords
We're drawing into the parent, so we need to use the parent's geometry
for the GL viewport, or we may not be able to draw it. We also need to
use the parent width & height when checking whether to normalize to 1.0
or -1.0 in the coord transform calculations.
Jesse Barnes [Thu, 28 Oct 2010 18:15:04 +0000 (11:15 -0700)]
Wayland: fix geometry of swapBuffers
If the geometry isn't mapped 1:1 we need to divide the bottom by height,
not width, to calculate the texture rectangle.
Jesse Barnes [Thu, 28 Oct 2010 18:13:13 +0000 (11:13 -0700)]
Wayland: clean up swapBuffers code
Pull the swap fbo and rbo into the context and make sure to destroy them
when the context goes away. Add unfortunate lazy allocation of the fbo
and rbo because we need them to be part of the right context.
Jesse Barnes [Wed, 27 Oct 2010 22:01:38 +0000 (15:01 -0700)]
Wayland: add GL widget support
Make sure we copy from the private surface into the parent surface at
swapBuffers time.
Jesse Barnes [Wed, 27 Oct 2010 21:49:16 +0000 (14:49 -0700)]
Wayland: set parent window pointer in setParent()
We'll need this to handle GL widgets.
Jesse Barnes [Wed, 27 Oct 2010 21:44:04 +0000 (14:44 -0700)]
Wayland: render to a texture, not a renderbuffer
This will let us source from offscreen GL widget surfaces and copy into
the parent surface.
Jesse Barnes [Wed, 27 Oct 2010 21:38:03 +0000 (14:38 -0700)]
Wayland: put context & drawing objects into the drm surface
Even GL widgets will allocate window surfaces, so share everything
there. This still leaves a hole when we mix GL widgets and the raster
back end (the created platform GL context won't have a DRM buffer to use
for its objects & context), but that won't work right now anyway...
Jesse Barnes [Mon, 25 Oct 2010 18:38:29 +0000 (11:38 -0700)]
Wayland: add partial GL widget support
GL widgets need a platform GL context. Add one to get hellogl_es2
limping along.
Jesse Barnes [Mon, 25 Oct 2010 18:36:45 +0000 (11:36 -0700)]
Wayland: add waylandgl platform type
This will set mUseOpenGL when -platform waylandgl is passed to clients.
Jesse Barnes [Fri, 22 Oct 2010 21:00:08 +0000 (14:00 -0700)]
Wayland: silence unused variable warnings in qwaylandinputdevice.cpp
Jesse Barnes [Fri, 22 Oct 2010 17:31:03 +0000 (10:31 -0700)]
Wayland: add GL drawing support
Works with analogclock, draws upside down, fails to resize, and doesn't
show GL widget with hello_es2.
Jesse Barnes [Fri, 22 Oct 2010 17:30:27 +0000 (10:30 -0700)]
Wayland: misc cleanups
Unused variables, debug output.
Kristian Høgsberg [Fri, 15 Oct 2010 01:25:15 +0000 (21:25 -0400)]
Introduce drm wayland buffer
Kristian Høgsberg [Thu, 14 Oct 2010 19:36:59 +0000 (15:36 -0400)]
Initialize EGL
Kristian Høgsberg [Fri, 8 Oct 2010 20:02:01 +0000 (16:02 -0400)]
Cursors, keyboard support, move/resize
Kristian Høgsberg [Thu, 7 Oct 2010 21:07:59 +0000 (17:07 -0400)]
Use QImage::Format_ARGB32_Premultiplied for the surface
Kristian Høgsberg [Thu, 7 Oct 2010 16:23:14 +0000 (12:23 -0400)]
wayland: Track the QWaylandWindow in the input device instead of the surface
The surface is destroyed when the window is hidden, so we can't use that
for looking up the widget to send events to.