diff options
author | Jørgen Lind <jorgen.lind@nokia.com> | 2012-04-06 13:35:43 +0200 |
---|---|---|
committer | Jørgen Lind <jorgen.lind@nokia.com> | 2012-04-10 18:54:33 +0200 |
commit | a72e662b4e5c45988bbe06d587e167901b5606da (patch) | |
tree | 74f4aa9e6338ac62b90403bcd914065d8f08a8b0 /src/compositor/wayland_wrapper/wlinputdevice.cpp | |
parent | 585a1080cc755c0c7820a06ecfd059f75af60bfd (diff) |
Update wayland_sha1 and implement buffer_pool interface
Change-Id: I0628a7655a6deb061a5d0b6c6304c89d8655cf11
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Diffstat (limited to 'src/compositor/wayland_wrapper/wlinputdevice.cpp')
-rw-r--r-- | src/compositor/wayland_wrapper/wlinputdevice.cpp | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/src/compositor/wayland_wrapper/wlinputdevice.cpp b/src/compositor/wayland_wrapper/wlinputdevice.cpp index 2e0f4b883..adbff6679 100644 --- a/src/compositor/wayland_wrapper/wlinputdevice.cpp +++ b/src/compositor/wayland_wrapper/wlinputdevice.cpp @@ -40,7 +40,6 @@ #include "wlinputdevice.h" -#include "wlshmbuffer.h" #include "wlcompositor.h" #include "wldatadevice.h" #include "wlsurface.h" @@ -52,7 +51,7 @@ namespace Wayland { -static ShmBuffer *currentCursor; +static QImage *currentCursor; InputDevice::InputDevice(WaylandInputDevice *handle, Compositor *compositor) : m_handle(handle) @@ -346,10 +345,16 @@ void InputDevice::input_device_attach(struct wl_client *client, InputDevice *inputDevice = wayland_cast<InputDevice>(device_base); if (wl_buffer_is_shm(buffer)) { - ShmBuffer *shmBuffer = static_cast<ShmBuffer *>(buffer->user_data); - if (shmBuffer) { - inputDevice->m_compositor->waylandCompositor()->changeCursor(shmBuffer->image(), x, y); - currentCursor = shmBuffer; + int stride = wl_shm_buffer_get_stride(buffer); + uint format = wl_shm_buffer_get_format(buffer); + (void) format; + void *data = wl_shm_buffer_get_data(buffer); + const uchar *char_data = static_cast<const uchar *>(data); + if (char_data) { + QImage *img = new QImage(char_data, buffer->width, buffer->height, stride, QImage::Format_ARGB32_Premultiplied); + inputDevice->m_compositor->waylandCompositor()->changeCursor(*img, x, y); + delete currentCursor; + currentCursor = img; } } } |