Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
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
4
#
include
"qwaylandvulkanwindow_p.h"
5
6
QT_BEGIN_NAMESPACE
7
8
namespace
QtWaylandClient
{
9
10
QWaylandVulkanWindow
::
QWaylandVulkanWindow
(QWindow *window, QWaylandDisplay *display)
11
:
QWaylandWindow
(
window
,
display
)
12
{
13
}
14
15
QWaylandVulkanWindow
::~
QWaylandVulkanWindow
()
16
{
17
invalidateSurface
(
)
;
18
}
19
20
QWaylandWindow
::
WindowType
QWaylandVulkanWindow
::
windowType
()
const
21
{
22
return
QWaylandWindow::Vulkan;
23
}
24
25
void
QWaylandVulkanWindow
::
invalidateSurface
()
26
{
27
if
(m_surface) {
28
QVulkanInstance *inst = window()->vulkanInstance();
29
if
(inst)
30
static_cast
<QWaylandVulkanInstance *>(inst->handle())->destroySurface(m_surface);
31
}
32
m_surface = VK_NULL_HANDLE;
33
QWaylandWindow::invalidateSurface();
34
}
35
36
VkSurfaceKHR
*
QWaylandVulkanWindow
::
vkSurface
()
37
{
38
if
(m_surface)
39
return
&m_surface;
40
41
QVulkanInstance *vulkanInstance = window()->vulkanInstance();
42
if
(!vulkanInstance) {
43
qWarning() <<
"Attempted to create Vulkan surface without an instance; was QWindow::setVulkanInstance() called?"
;
44
return
nullptr
;
45
}
46
47
auto
*waylandVulkanInstance =
static_cast
<
QWaylandVulkanInstance
*>(vulkanInstance->handle());
48
m_surface = waylandVulkanInstance->createSurface(
this
);
49
50
return
&m_surface;
51
}
52
53
}
// namespace QtWaylandClient
54
55
QT_END_NAMESPACE
QtWaylandClient::QWaylandVulkanInstance
Definition
qwaylandvulkaninstance_p.h:34
QtWaylandClient::QWaylandVulkanWindow
Definition
qwaylandvulkanwindow_p.h:26
QtWaylandClient::QWaylandVulkanWindow::vkSurface
VkSurfaceKHR * vkSurface()
Definition
qwaylandvulkanwindow.cpp:36
QtWaylandClient::QWaylandVulkanWindow::~QWaylandVulkanWindow
~QWaylandVulkanWindow() override
Definition
qwaylandvulkanwindow.cpp:15
QtWaylandClient::QWaylandVulkanWindow::QWaylandVulkanWindow
QWaylandVulkanWindow(QWindow *window, QWaylandDisplay *display)
Definition
qwaylandvulkanwindow.cpp:10
QtWaylandClient::QWaylandVulkanWindow::windowType
WindowType windowType() const override
Definition
qwaylandvulkanwindow.cpp:20
QtWaylandClient::QWaylandVulkanWindow::invalidateSurface
void invalidateSurface() override
Invalidates the window's surface by releasing its surface buffers.
Definition
qwaylandvulkanwindow.cpp:25
QPlatformGraphicsBufferHelper
\inmodule QtGui
QtWaylandClient
Definition
qwaylandclientextension.h:15
qtbase
src
plugins
platforms
wayland
qwaylandvulkanwindow.cpp
Generated on
for Qt by
1.14.0