summaryrefslogtreecommitdiffstats
path: root/src/qt-compositor/hardware_integration/xcomposite_share/xcompositehandler.h
blob: dc85473f09f6c0a0f53a298184c38fdf08a92710 (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
33
#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, QWidget *topLevelWidget);
    void createBuffer(struct wl_client *client, uint32_t id, Window window, const QSize &size, struct wl_visual *visual);

    static void send_root_information(struct wl_client *client, struct wl_object *global, uint32_t version);
    static struct wl_xcomposite_interface xcomposite_interface;

private:
    Wayland::Compositor *mCompositor;
    QWidget *mTopLevelWidget;
    QWidget *mFakeRootWidget;
    Display *mDisplay;

    static void create_buffer(struct wl_client *client,
                          struct wl_xcomposite *xcomposite,
                          uint32_t id,
                          uint32_t x_window,
                          int width,
                          int height,
                          struct wl_visual *visual);

};

#endif // XCOMPOSITEHANDLER_H