18#include "qwayland-server-linux-dmabuf-unstable-v1.h"
24#include <drm_fourcc.h>
29class LinuxDmaBufV1FormatTable;
38 std::unique_ptr<LinuxDmaBufV1FormatTable>
table;
65 uint32_t modifier_lo)
override;
71 bool test(Resource *resource, uint32_t width, uint32_t height);
75 bool m_isUsed =
false;
85 QSize
size()
const override;
92 void initialize(wl_resource *resource);
94 static void buffer_destroy_resource(wl_resource *resource);
95 static void buffer_destroy(wl_client *client, wl_resource *resource);
96 static const struct wl_buffer_interface implementation;
98 wl_resource *m_resource =
nullptr;
100 bool m_hasAlphaChannel =
false;
111 QMap<std::pair<uint32_t, uint64_t>, uint16_t>
indices;
120 void send(Resource *resource);
Class holding the Wayland server display loop.
LinuxDmaBufParamsV1(LinuxDmaBufV1ClientBufferIntegration *integration, ::wl_resource *resource)
void zwp_linux_buffer_params_v1_destroy(Resource *resource) override
void zwp_linux_buffer_params_v1_add(Resource *resource, int32_t fd, uint32_t plane_idx, uint32_t offset, uint32_t stride, uint32_t modifier_hi, uint32_t modifier_lo) override
void zwp_linux_buffer_params_v1_create_immed(Resource *resource, uint32_t buffer_id, int32_t width, int32_t height, uint32_t format, uint32_t flags) override
void zwp_linux_buffer_params_v1_destroy_resource(Resource *resource) override
void zwp_linux_buffer_params_v1_create(Resource *resource, int32_t width, int32_t height, uint32_t format, uint32_t flags) override
LinuxDmaBufV1ClientBufferIntegration * q
void zwp_linux_dmabuf_v1_destroy(Resource *resource) override
std::unique_ptr< LinuxDmaBufV1FormatTable > table
QPointer< RenderBackend > renderBackend
void zwp_linux_dmabuf_v1_bind_resource(Resource *resource) override
void zwp_linux_dmabuf_v1_get_default_feedback(Resource *resource, uint32_t id) override
QHash< uint32_t, QList< uint64_t > > supportedModifiers
std::unique_ptr< LinuxDmaBufV1Feedback > defaultFeedback
void zwp_linux_dmabuf_v1_get_surface_feedback(Resource *resource, uint32_t id, wl_resource *surface) override
LinuxDmaBufV1ClientBufferIntegrationPrivate(LinuxDmaBufV1ClientBufferIntegration *q, Display *display)
void zwp_linux_dmabuf_v1_create_params(Resource *resource, uint32_t params_id) override
void send(Resource *resource)
LinuxDmaBufV1FeedbackPrivate(LinuxDmaBufV1ClientBufferIntegrationPrivate *bufferintegration)
static LinuxDmaBufV1FeedbackPrivate * get(LinuxDmaBufV1Feedback *q)
QList< LinuxDmaBufV1Feedback::Tranche > m_tranches
void zwp_linux_dmabuf_feedback_v1_bind_resource(Resource *resource) override
LinuxDmaBufV1ClientBufferIntegrationPrivate * m_bufferintegration
void zwp_linux_dmabuf_feedback_v1_destroy(Resource *resource) override
Creates a file in memory.
static LinuxDmaBufV1ClientBuffer * get(wl_resource *resource)
const DmaBufAttributes * dmabufAttributes() const override
LinuxDmaBufV1ClientBuffer(DmaBufAttributes &&attrs)
bool hasAlphaChannel() const override
QSize size() const override