qt-compositor/wayland_wrapper: wayland do not set buffer->compositor anymore
authorCorentin Chary <corentin.chary@gmail.com>
Fri, 20 May 2011 07:46:04 +0000 (09:46 +0200)
committerSamuel Rødal <samuel.rodal@nokia.com>
Fri, 20 May 2011 07:46:04 +0000 (09:46 +0200)
This is only a temporary workaround since wl_buffer::compositor field
will be removed soon.

Signed-off-by: Corentin Chary <corentin.chary@gmail.com>
Merge-request: 3
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
src/qt-compositor/wayland_wrapper/wlshmbuffer.cpp
src/qt-compositor/wayland_wrapper/wlsurface.cpp

index 66c2be5..f0a307a 100644 (file)
@@ -52,6 +52,7 @@ ShmBuffer::ShmBuffer(struct wl_buffer *buffer)
     : m_buffer(buffer)
 {
     m_buffer->user_data = this;
+    m_buffer->compositor = NULL;
     m_data = wl_shm_buffer_get_data(m_buffer);
     m_stride = wl_shm_buffer_get_stride(m_buffer);
 
@@ -75,7 +76,12 @@ QSize ShmBuffer::size() const
 void ShmBuffer::damage()
 {
     QImage::Format imageFormat = QImage::Format_Invalid;
+
     //jl: need to do depth check as well.
+
+    if (!m_buffer->compositor)
+      return ;
+
     if (m_buffer->visual == &m_buffer->compositor->premultiplied_argb_visual) {
         imageFormat = QImage::Format_ARGB32_Premultiplied;
     } else if (m_buffer->visual == &m_buffer->compositor->rgb_visual) {
index 92e464d..d26cd01 100644 (file)
@@ -94,6 +94,7 @@ public:
         this->surfaceBuffer = buffer;
         surfaceType = WaylandSurface::Invalid;
         textureCreatedForBuffer = false;
+        buffer->compositor = compositor->base();
     }
 
     inline struct wl_buffer *buffer() const { return surfaceBuffer; }