Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
vulkanserverbufferintegration.h
Go to the documentation of this file.
1// Copyright (C) 2019 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
3
4#ifndef VULKANSERVERBUFFERINTEGRATION_H
5#define VULKANSERVERBUFFERINTEGRATION_H
6
7#include <QtWaylandCompositor/private/qwlserverbufferintegration_p.h>
8
9#include "qwayland-server-qt-vulkan-server-buffer-unstable-v1.h"
10
11#include <QtGui/QImage>
12#include <QtGui/QWindow>
13#include <QtGui/qpa/qplatformnativeinterface.h>
14#include <QtGui/QGuiApplication>
15
16#include <QtWaylandCompositor/qwaylandcompositor.h>
17#include <QtWaylandCompositor/private/qwayland-server-server-buffer-extension.h>
18
20
22class VulkanWrapper;
24
25class VulkanServerBuffer : public QtWayland::ServerBuffer, public QtWaylandServer::qt_server_buffer
26{
27public:
29 VulkanServerBuffer(VulkanServerBufferIntegration *integration, VulkanImageWrapper *vImage, uint glInternalFormat, const QSize &size);
30 ~VulkanServerBuffer() override;
31
32 struct ::wl_resource *resourceForClient(struct ::wl_client *) override;
33 bool bufferInUse() override;
35 void releaseOpenGlTexture() override;
36
37protected:
38 void server_buffer_release(Resource *resource) override;
39
40private:
41 VulkanServerBufferIntegration *m_integration = nullptr;
42
43 int m_width;
44 int m_height;
45 int m_memorySize;
46 int m_fd = -1;
47 VulkanImageWrapper *m_vImage = nullptr;
48 QOpenGLTexture *m_texture = nullptr;
49 uint m_glInternalFormat;
50 GLuint m_memoryObject;
51};
52
55 public QtWaylandServer::zqt_vulkan_server_buffer_v1
56{
57public:
60
61 VulkanWrapper *vulkanWrapper() const { return m_vulkanWrapper; }
62
64
68 uint glInternalFormat) override;
69
70private:
71 VulkanWrapper *m_vulkanWrapper = nullptr;
72};
73
75
76#endif
\inmodule QtGui
Definition qimage.h:37
\inmodule QtGui
\inmodule QtCore
Definition qsize.h:25
\qmltype WaylandCompositor \instantiates QWaylandCompositor \inqmlmodule QtWayland....
bool supportsFormat(QtWayland::ServerBuffer::Format format) const override
bool initializeHardware(QWaylandCompositor *) override
QtWayland::ServerBuffer * createServerBufferFromData(QByteArrayView view, const QSize &size, uint glInternalFormat) override
QtWayland::ServerBuffer * createServerBufferFromImage(const QImage &qimage, QtWayland::ServerBuffer::Format format) override
VulkanServerBuffer(VulkanServerBufferIntegration *integration, const QImage &qimage, QtWayland::ServerBuffer::Format format)
void server_buffer_release(Resource *resource) override
QOpenGLTexture * toOpenGlTexture() override
struct::wl_resource * resourceForClient(struct ::wl_client *) override
Combined button and popup list for selecting options.
GLenum GLuint GLintptr GLsizeiptr size
[1]
GLint GLsizei GLsizei GLenum format
#define GLuint
unsigned int uint
Definition qtypes.h:34
QQuickView * view
[0]