diff options
Diffstat (limited to 'src/qt-compositor/hardware_integration/xpixmap_share/xpixmaphandler.cpp')
-rw-r--r-- | src/qt-compositor/hardware_integration/xpixmap_share/xpixmaphandler.cpp | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/src/qt-compositor/hardware_integration/xpixmap_share/xpixmaphandler.cpp b/src/qt-compositor/hardware_integration/xpixmap_share/xpixmaphandler.cpp new file mode 100644 index 0000000..3c620c5 --- /dev/null +++ b/src/qt-compositor/hardware_integration/xpixmap_share/xpixmaphandler.cpp @@ -0,0 +1,80 @@ +/**************************************************************************** +** +** This file is part of QtCompositor** +** +** Copyright © 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** +** Contact: Nokia Corporation qt-info@nokia.com +** +** You may use this file under the terms of the BSD license as follows: +** +** Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** +** Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** +** Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in the +** documentation and/or other materials provided with the distribution. +** +** Neither the name of Nokia Corporation and its Subsidiary(-ies) nor the +** names of its contributors may be used to endorse or promote products +** derived from this software without specific prior written permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +** +****************************************************************************/ + +#include "xpixmaphandler.h" + +#include <QtGui/QWidget> +#include "wayland_wrapper/wlcompositor.h" + +#include <QtCore/QDebug> + +#include "xpixmapbuffer.h" +#include <X11/Xlib.h> + +XPixmapHandler::XPixmapHandler(Wayland::Compositor *compositor, QWidget *topLevelWidget) + :m_compositor(compositor) +{ +} + +XPixmapHandler::~XPixmapHandler() +{ + qDebug() << "xpixmapHandler destroyed"; +} + +void create_buffer(struct wl_client *client, + struct wl_xpixmap *xpixmap, + uint32_t id, + uint32_t xpixmap_id, + int width, + int height, + struct wl_visual *visual) +{ + XPixmapHandler *xpixmapHandler = reinterpret_cast<XPixmapHandler *>(xpixmap); + xpixmapHandler->createBuffer(client,id,xpixmap_id,QSize(width,height),visual); +} + +void XPixmapHandler::createBuffer(wl_client *client, uint32_t id, uint32_t xpixmap_id, const QSize &size, wl_visual *visual) +{ + + qDebug() << "creating buffer for id" << xpixmap_id << "and size" << size; + Pixmap pixmap = (Pixmap)xpixmap_id; + XPixmapBuffer *pixmapBuffer = new XPixmapBuffer(pixmap,size,visual,m_compositor); + Wayland::addClientResource(client,&pixmapBuffer->base()->resource,id,&wl_buffer_interface,&xpixmap_buffer_interface,0); +} |