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
qwaylandvulkanwindow.cpp
Go to the documentation of this file.
1
// Copyright (C) 2019 The Qt Company Ltd.
2
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
// Qt-Security score:significant reason:default
4
5
#
include
"qwaylandvulkanwindow_p.h"
6
7
QT_BEGIN_NAMESPACE
8
9
namespace
QtWaylandClient
{
10
11
QWaylandVulkanWindow
::
QWaylandVulkanWindow
(QWindow *window, QWaylandDisplay *display)
12
:
QWaylandWindow
(
window
,
display
)
13
{
14
}
15
16
QWaylandVulkanWindow
::~
QWaylandVulkanWindow
()
17
{
18
invalidateSurface
(
)
;
19
}
20
21
QWaylandWindow
::
WindowType
QWaylandVulkanWindow
::
windowType
()
const
22
{
23
return
QWaylandWindow::Vulkan;
24
}
25
26
void
QWaylandVulkanWindow
::
invalidateSurface
()
27
{
28
if
(m_surface) {
29
QVulkanInstance *inst = window()->vulkanInstance();
30
if
(inst)
31
static_cast
<
QWaylandVulkanInstance
*>(inst->handle())->destroySurface(m_surface);
32
}
33
m_surface = VK_NULL_HANDLE;
34
QWaylandWindow::invalidateSurface();
35
}
36
37
VkSurfaceKHR
*
QWaylandVulkanWindow
::
vkSurface
()
38
{
39
if
(m_surface)
40
return
&m_surface;
41
42
QVulkanInstance *vulkanInstance = window()->vulkanInstance();
43
if
(!vulkanInstance) {
44
qWarning() <<
"Attempted to create Vulkan surface without an instance; was QWindow::setVulkanInstance() called?"
;
45
return
nullptr
;
46
}
47
48
auto
*waylandVulkanInstance =
static_cast
<
QWaylandVulkanInstance
*>(vulkanInstance->handle());
49
m_surface = waylandVulkanInstance->createSurface(
this
);
50
51
return
&m_surface;
52
}
53
54
}
// namespace QtWaylandClient
55
56
QT_END_NAMESPACE
QtWaylandClient::QWaylandVulkanInstance
Definition
qwaylandvulkaninstance_p.h:35
QtWaylandClient::QWaylandVulkanWindow
Definition
qwaylandvulkanwindow_p.h:27
QtWaylandClient::QWaylandVulkanWindow::vkSurface
VkSurfaceKHR * vkSurface()
Definition
qwaylandvulkanwindow.cpp:37
QtWaylandClient::QWaylandVulkanWindow::~QWaylandVulkanWindow
~QWaylandVulkanWindow() override
Definition
qwaylandvulkanwindow.cpp:16
QtWaylandClient::QWaylandVulkanWindow::QWaylandVulkanWindow
QWaylandVulkanWindow(QWindow *window, QWaylandDisplay *display)
Definition
qwaylandvulkanwindow.cpp:11
QtWaylandClient::QWaylandVulkanWindow::windowType
WindowType windowType() const override
Definition
qwaylandvulkanwindow.cpp:21
QtWaylandClient::QWaylandVulkanWindow::invalidateSurface
void invalidateSurface() override
Invalidates the window's surface by releasing its surface buffers.
Definition
qwaylandvulkanwindow.cpp:26
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qsequentialanimationgroup.cpp:47
QtWaylandClient
Definition
qwaylandclientextension.h:16
qtbase
src
plugins
platforms
wayland
qwaylandvulkanwindow.cpp
Generated on
for Qt by
1.18.0