summaryrefslogtreecommitdiffstats
path: root/src/qt-compositor/hardware_integration/xcomposite_share/xcompositehandler.h
blob: 28f5cd3dbe49b76d37526533795272c59c02a43e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#ifndef XCOMPOSITEHANDLER_H
#define XCOMPOSITEHANDLER_H

#include "wayland_wrapper/wlcompositor.h"

#include "xlibinclude.h"

class XCompositeHandler : public Wayland::Object<struct wl_object>
{
public:
    XCompositeHandler(Wayland::Compositor *compositor, Display *display, QWindow *window);
    void createBuffer(struct wl_client *client, uint32_t id, Window window, const QSize &size);

    static void xcomposite_bind_func(struct wl_client *client, void *data, uint32_t version, uint32_t id);
    static struct wl_xcomposite_interface xcomposite_interface;

private:
    Wayland::Compositor *mCompositor;
    QWindow *mwindow;
    QWindow *mFakeRootWidget;
    Display *mDisplay;

    static void create_buffer(struct wl_client *client,
                          struct wl_resource *xcomposite,
                          uint32_t id,
                          uint32_t x_window,
                          int32_t width,
                          int32_t height);

};

#endif // XCOMPOSITEHANDLER_H