Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
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
// Qt-Security score:critical reason:network-protocol
4
5
#
ifndef
VULKANSERVERBUFFERINTEGRATION_H
6
#
define
VULKANSERVERBUFFERINTEGRATION_H
7
8
#
include
<
QtWaylandCompositor
/
private
/
qwlserverbufferintegration_p
.
h
>
9
10
#
include
"qwayland-server-qt-vulkan-server-buffer-unstable-v1.h"
11
12
#
include
<
QtGui
/
QImage
>
13
#
include
<
QtGui
/
QWindow
>
14
#
include
<
QtGui
/
qpa
/
qplatformnativeinterface
.
h
>
15
#
include
<
QtGui
/
QGuiApplication
>
16
17
#
include
<
QtWaylandCompositor
/
qwaylandcompositor
.
h
>
18
#
include
<
QtWaylandCompositor
/
private
/
qwayland
-
server
-
server
-
buffer
-
extension
.
h
>
19
20
QT_BEGIN_NAMESPACE
21
22
class
VulkanServerBufferIntegration;
23
class
VulkanWrapper
;
24
struct
VulkanImageWrapper
;
25
26
class
VulkanServerBuffer
:
public
QtWayland
::
ServerBuffer
,
public
QtWaylandServer
::
qt_server_buffer
27
{
28
public
:
29
VulkanServerBuffer
(
VulkanServerBufferIntegration
*integration,
const
QImage &qimage, QtWayland::ServerBuffer::Format format);
30
VulkanServerBuffer
(
VulkanServerBufferIntegration
*integration,
VulkanImageWrapper
*vImage, uint glInternalFormat,
const
QSize &size);
31
~
VulkanServerBuffer
()
override
;
32
33
struct
::wl_resource *
resourceForClient
(
struct
::wl_client *)
override
;
34
bool
bufferInUse
()
override
;
35
QOpenGLTexture
*
toOpenGlTexture
()
override
;
36
void
releaseOpenGlTexture
()
override
;
37
38
protected
:
39
void
server_buffer_release
(Resource *resource)
override
;
40
41
private
:
42
VulkanServerBufferIntegration
*m_integration =
nullptr
;
43
44
int
m_width;
45
int
m_height;
46
int
m_memorySize;
47
int
m_fd = -1;
48
VulkanImageWrapper
*m_vImage =
nullptr
;
49
QOpenGLTexture *m_texture =
nullptr
;
50
uint m_glInternalFormat;
51
GLuint m_memoryObject;
52
};
53
54
class
VulkanServerBufferIntegration
:
55
public
QtWayland
::
ServerBufferIntegration
,
56
public
QtWaylandServer
::
zqt_vulkan_server_buffer_v1
57
{
58
public
:
59
VulkanServerBufferIntegration
();
60
~
VulkanServerBufferIntegration
()
override
;
61
62
VulkanWrapper
*
vulkanWrapper
()
const
{
return
m_vulkanWrapper; }
63
64
bool
initializeHardware
(QWaylandCompositor *)
override
;
65
66
bool
supportsFormat
(QtWayland::ServerBuffer::Format format)
const
override
;
67
QtWayland
::
ServerBuffer
*
createServerBufferFromImage
(
const
QImage &qimage, QtWayland::ServerBuffer::Format format)
override
;
68
QtWayland
::
ServerBuffer
*
createServerBufferFromData
(QByteArrayView view,
const
QSize &size,
69
uint glInternalFormat)
override
;
70
71
private
:
72
VulkanWrapper
*m_vulkanWrapper =
nullptr
;
73
};
74
75
QT_END_NAMESPACE
76
77
#
endif
CurrentContext
Definition
vulkanserverbufferintegration.cpp:59
CurrentContext::~CurrentContext
~CurrentContext()
Definition
vulkanserverbufferintegration.cpp:82
CurrentContext::CurrentContext
CurrentContext()
Definition
vulkanserverbufferintegration.cpp:61
CurrentContext::context
QOpenGLContext * context()
Definition
vulkanserverbufferintegration.cpp:87
VulkanServerBufferIntegration
Definition
vulkanserverbufferintegration.h:57
VulkanServerBufferIntegration::supportsFormat
bool supportsFormat(QtWayland::ServerBuffer::Format format) const override
Definition
vulkanserverbufferintegration.cpp:251
VulkanServerBufferIntegration::initializeHardware
bool initializeHardware(QWaylandCompositor *) override
Definition
vulkanserverbufferintegration.cpp:243
VulkanServerBufferIntegration::~VulkanServerBufferIntegration
~VulkanServerBufferIntegration() override
Definition
vulkanserverbufferintegration.cpp:239
VulkanServerBufferIntegration::VulkanServerBufferIntegration
VulkanServerBufferIntegration()
Definition
vulkanserverbufferintegration.cpp:235
VulkanServerBufferIntegration::createServerBufferFromData
QtWayland::ServerBuffer * createServerBufferFromData(QByteArrayView view, const QSize &size, uint glInternalFormat) override
Definition
vulkanserverbufferintegration.cpp:273
VulkanServerBufferIntegration::createServerBufferFromImage
QtWayland::ServerBuffer * createServerBufferFromImage(const QImage &qimage, QtWayland::ServerBuffer::Format format) override
Definition
vulkanserverbufferintegration.cpp:263
VulkanServerBufferIntegration::vulkanWrapper
VulkanWrapper * vulkanWrapper() const
Definition
vulkanserverbufferintegration.h:62
VulkanServerBuffer
Definition
vulkanserverbufferintegration.h:27
VulkanServerBuffer::VulkanServerBuffer
VulkanServerBuffer(VulkanServerBufferIntegration *integration, const QImage &qimage, QtWayland::ServerBuffer::Format format)
Definition
vulkanserverbufferintegration.cpp:110
VulkanServerBuffer::server_buffer_release
void server_buffer_release(Resource *resource) override
Definition
vulkanserverbufferintegration.cpp:229
VulkanServerBuffer::releaseOpenGlTexture
void releaseOpenGlTexture() override
Definition
vulkanserverbufferintegration.cpp:213
VulkanServerBuffer::toOpenGlTexture
QOpenGLTexture * toOpenGlTexture() override
Definition
vulkanserverbufferintegration.cpp:172
VulkanServerBuffer::bufferInUse
bool bufferInUse() override
Definition
vulkanserverbufferintegration.cpp:224
VulkanServerBuffer::VulkanServerBuffer
VulkanServerBuffer(VulkanServerBufferIntegration *integration, VulkanImageWrapper *vImage, uint glInternalFormat, const QSize &size)
Definition
vulkanserverbufferintegration.cpp:136
VulkanServerBuffer::~VulkanServerBuffer
~VulkanServerBuffer() override
Definition
vulkanserverbufferintegration.cpp:148
VulkanWrapper
Definition
vulkanwrapper.h:20
VulkanWrapper::getImageInfo
int getImageInfo(const VulkanImageWrapper *imgWrapper, int *memSize, int *w=nullptr, int *h=nullptr)
Definition
vulkanwrapper.cpp:681
VulkanWrapper::VulkanWrapper
VulkanWrapper(QOpenGLContext *glContext)
Definition
vulkanwrapper.cpp:662
VulkanWrapper::freeTextureImage
void freeTextureImage(VulkanImageWrapper *imageWrapper)
Definition
vulkanwrapper.cpp:692
VulkanWrapper::createTextureImage
VulkanImageWrapper * createTextureImage(const QImage &img)
Definition
vulkanwrapper.cpp:667
DECL_GL_FUNCTION
#define DECL_GL_FUNCTION(name, type)
Definition
vulkanserverbufferintegration.cpp:25
FIND_GL_FUNCTION
#define FIND_GL_FUNCTION(name, type)
Definition
vulkanserverbufferintegration.cpp:28
vsbiExtraDebug
static QT_BEGIN_NAMESPACE constexpr bool vsbiExtraDebug
Definition
vulkanserverbufferintegration.cpp:20
funcs
static VulkanServerBufferGlFunctions * funcs
Definition
vulkanserverbufferintegration.cpp:55
VulkanImageWrapper
Definition
vulkanwrapper.cpp:156
VulkanServerBufferGlFunctions
Definition
vulkanserverbufferintegration.cpp:35
VulkanServerBufferGlFunctions::init
bool init(QOpenGLContext *glContext)
Definition
vulkanserverbufferintegration.cpp:42
VulkanServerBufferGlFunctions::create
static bool create(QOpenGLContext *glContext)
Definition
vulkanserverbufferintegration.cpp:97
qtwayland
src
hardwareintegration
compositor
vulkan-server
vulkanserverbufferintegration.h
Generated on
for Qt by
1.18.0