summaryrefslogtreecommitdiffstats
path: root/src/compositor/hardware_integration/xcomposite_glx/xcompositeglxintegration.h
blob: 43f062fdffa8e9a5b03dd7ca4bde98ef14b73ecb (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
#ifndef XCOMPOSITEGLXINTEGRATION_H
#define XCOMPOSITEGLXINTEGRATION_H

#include "hardware_integration/graphicshardwareintegration.h"

#include "xlibinclude.h"

#define GLX_GLXEXT_PROTOTYPES
#include <GL/glx.h>
#include <GL/glxext.h>

class XCompositeGLXIntegration : public GraphicsHardwareIntegration
{
public:
    XCompositeGLXIntegration(WaylandCompositor *compositor);

    void initializeHardware(Wayland::Display *waylandDisplay);

    GLuint createTextureFromBuffer(struct wl_buffer *buffer, QOpenGLContext *context);
    bool isYInverted(wl_buffer *) const;

private:
    PFNGLXBINDTEXIMAGEEXTPROC m_glxBindTexImageEXT;
    PFNGLXRELEASETEXIMAGEEXTPROC m_glxReleaseTexImageEXT;

    Display *mDisplay;
    int mScreen;
};

#endif // XCOMPOSITEGLXINTEGRATION_H