Commit graph

16 commits

Author SHA1 Message Date
Martin Gräßlin
68ce470231 Add a parentResource to Resource 2014-11-20 16:40:14 +01:00
Martin Gräßlin
dd50148187 [server] Interface method returning wl_resource* is called ::resource
Simplifies using the library as all Interfaces have the same methods.
Note: there are interfaces not providing the wl_resource* method.
2014-11-13 13:05:01 +01:00
Martin Gräßlin
c81271a3b4 Fix shared memory access in BufferInterface
The BufferInterface used nested calls of wl_shm_buffer_begin_access
and allowed multiple different BufferInterfaces to be in a block
between wl_shm_buffer_begin_access and wl_shm_buffer_end_access.
But this is not allowed: nesting is only possible if it accesses
the same buffer!

This resulted in an abort when we accessed two BufferInterfaces
at the same time. The added test case aborts in the previous
version.

The fix now changes the semantic of the method. The BufferInterface
doesn't hold the QImage any more, but creates a new one every time
::data is invoked. The QImage is created with a custom cleanup
function which calls to wl_shm_buffer_end_access. It ensures that
we don't call into wl_shm_buffer_begin_access as long as there is
a valid QImage for any other BufferInterface still around and
instead returns a null QImage.

Thus a user of a BufferInterface::data should destroy the returned
QImage as soon as it's no longer needed or create a deep copy if
it needs to be kept around.
2014-11-13 08:30:51 +01:00
Martin Gräßlin
5debfb6832 Add support for opaque and input region to Surface
Implemented on both Client and Server side.
2014-10-16 14:59:01 +02:00
Martin Gräßlin
eb9e5a178f Switch all auto tests to QTEST_GUILESS_MAIN
We don't need a QGuiApplication in the tests.
2014-09-23 12:00:17 +02:00
Martin Gräßlin
44a51fef8b Add test case for Surface::destroy 2014-09-22 11:14:05 +02:00
Martin Gräßlin
6f2d49e680 ShmPool returns QWeakPointer<Buffer> instead of Buffer*
The Buffers are exclusively hold by ShmPool. The user of a Buffer is not
supposed to delete it as a no longer used Buffer should be reused by the
ShmPool.

To make it obvious that the ownership of the pointer is not passed to the
user the return type is changed to QWeakPointer. This also allows the
ShmPool to destroy Buffers as needed.
2014-09-22 09:54:10 +02:00
Martin Gräßlin
9ae04f2100 Extend test_wayland_surface to test frame rendered callback 2014-09-20 16:28:47 +02:00
Martin Gräßlin
c14bbe9c53 Change Client::ShmPool to return Client::Buffer* instead of wl_buffer* 2014-09-20 15:11:40 +02:00
Martin Gräßlin
e33c005118 Add support for Formats to Buffer and ShmPool
So far only ARGB32 and RGB32 are supported. The format is an optional
argument to all the createBuffer and getBuffer calls with a default
for ARGB32.
2014-09-19 14:53:03 +02:00
Martin Gräßlin
4d77c197a9 Add convenient create methods to Registry
These methods allow to create the Interface objects and set them up
directly.
2014-09-19 10:42:44 +02:00
Martin Gräßlin
677e8b66a7 Use namespace KWayland::Client instead of KWin::WaylandServer
It's no longer part of KWin.
2014-09-17 16:17:26 +02:00
Martin Gräßlin
a8c7c16c94 Use namespace KWayland::Server instead of KWin::WaylandServer
It's no longer part of KWin.
2014-09-17 16:10:38 +02:00
Martin Gräßlin
3c87cea7a8 Change to LGPLv2+
I'm the only copyright holder of the code in this repository, thus
I can change from GPL to LGPL!
2014-09-17 15:57:56 +02:00
Martin Gräßlin
e763d9acc0 Add a build system
Framework style build system which generates two libraries:
* KF5WaylandClient
* KF5WaylandServer

autotests are adjusted to compile again. They need to be changed to
use the libraries once the export header gets generated.
2014-09-17 14:35:33 +02:00
Martin Gräßlin
faa80cefb7 Move all files to autotests/client 2014-09-17 13:23:06 +02:00
Renamed from src/wayland/test_wayland_surface.cpp (Browse further)