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
qeglfsvivwlintegration.cpp
Go to the documentation of this file.
1
// Copyright (C) 2016 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
"qeglfsvivwlintegration.h"
6
#
include
<
EGL
/
eglvivante
.
h
>
7
#
include
<
QDebug
>
8
9
#
include
<
wayland
-
server
.
h
>
10
11
QT_BEGIN_NAMESPACE
12
13
void
QEglFSVivWaylandIntegration::platformInit()
14
{
15
QEglFSDeviceIntegration::platformInit();
16
17
int
width, height;
18
19
bool
multiBufferNotEnabledYet = qEnvironmentVariableIsEmpty(
"FB_MULTI_BUFFER"
);
20
bool
multiBuffer = qEnvironmentVariableIsEmpty(
"QT_EGLFS_IMX6_NO_FB_MULTI_BUFFER"
);
21
if
(multiBufferNotEnabledYet && multiBuffer) {
22
qWarning() <<
"QEglFSVivWaylandIntegration will set environment variable FB_MULTI_BUFFER=2 to enable double buffering and vsync.\n"
23
<<
"If this is not desired, you can override this via: export QT_EGLFS_IMX6_NO_FB_MULTI_BUFFER=1"
;
24
qputenv(
"FB_MULTI_BUFFER"
,
"2"
);
25
}
26
27
mWaylandDisplay = wl_display_create();
28
mNativeDisplay =
static_cast
<EGLNativeDisplayType>(fbGetDisplay(mWaylandDisplay));
29
fbGetDisplayGeometry(mNativeDisplay, &width, &height);
30
mScreenSize.setHeight(height);
31
mScreenSize.setWidth(width);
32
}
33
34
void
QEglFSVivWaylandIntegration::platformDestroy()
35
{
36
wl_display_destroy(mWaylandDisplay);
37
}
38
39
QSize QEglFSVivWaylandIntegration::screenSize()
const
40
{
41
return
mScreenSize;
42
}
43
44
EGLNativeDisplayType QEglFSVivWaylandIntegration::platformDisplay()
const
45
{
46
return
mNativeDisplay;
47
}
48
49
EGLNativeWindowType QEglFSVivWaylandIntegration::createNativeWindow(QPlatformWindow *window,
const
QSize &size,
const
QSurfaceFormat &format)
50
{
51
Q_UNUSED(window);
52
Q_UNUSED(format);
53
54
EGLNativeWindowType eglWindow =
static_cast
<EGLNativeWindowType>(fbCreateWindow(mNativeDisplay, 0, 0, size.width(), size.height()));
55
return
eglWindow;
56
}
57
58
void
QEglFSVivWaylandIntegration::destroyNativeWindow(EGLNativeWindowType window)
59
{
60
fbDestroyWindow(window);
61
}
62
63
void
*QEglFSVivWaylandIntegration::wlDisplay()
const
64
{
65
return
mWaylandDisplay;
66
}
67
68
69
QT_END_NAMESPACE
qtbase
src
plugins
platforms
eglfs
deviceintegration
eglfs_viv_wl
qeglfsvivwlintegration.cpp
Generated on
for Qt by
1.18.0