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
qquickgraphicsinfo_p.h
Go to the documentation of this file.
1
// Copyright (C) 2021 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
#
ifndef
QQUICKGRAPHICSINFO_P_H
6
#
define
QQUICKGRAPHICSINFO_P_H
7
8
//
9
// W A R N I N G
10
// -------------
11
//
12
// This file is not part of the Qt API. It exists purely as an
13
// implementation detail. This header file may change from version to
14
// version without notice, or even be removed.
15
//
16
// We mean it.
17
//
18
19
#
include
<
QtCore
/
qobject
.
h
>
20
#
include
<
QtCore
/
qpointer
.
h
>
21
#
include
<
QtQml
/
qqml
.
h
>
22
#
include
<
QtGui
/
qsurfaceformat
.
h
>
23
#
include
<
QtQuick
/
qsgrendererinterface
.
h
>
24
#
include
<
QtCore
/
private
/
qglobal_p
.
h
>
25
26
QT_BEGIN_NAMESPACE
27
28
class
QQuickItem;
29
class
QQuickWindow;
30
31
class
QQuickGraphicsInfo
:
public
QObject
32
{
33
Q_OBJECT
34
Q_PROPERTY(GraphicsApi api READ api NOTIFY apiChanged FINAL)
35
Q_PROPERTY
(
ShaderType
shaderType
READ
shaderType
NOTIFY
shaderTypeChanged
FINAL
)
36
Q_PROPERTY
(
ShaderCompilationType
shaderCompilationType
READ
shaderCompilationType
NOTIFY
shaderCompilationTypeChanged
FINAL
)
37
Q_PROPERTY
(
ShaderSourceType
shaderSourceType
READ
shaderSourceType
NOTIFY
shaderSourceTypeChanged
FINAL
)
38
39
Q_PROPERTY
(
int
majorVersion
READ
majorVersion
NOTIFY
majorVersionChanged
FINAL
)
40
Q_PROPERTY
(
int
minorVersion
READ
minorVersion
NOTIFY
minorVersionChanged
FINAL
)
41
Q_PROPERTY
(
OpenGLContextProfile
profile
READ
profile
NOTIFY
profileChanged
FINAL
)
42
Q_PROPERTY
(
RenderableType
renderableType
READ
renderableType
NOTIFY
renderableTypeChanged
FINAL
)
43
44
QML_NAMED_ELEMENT
(
GraphicsInfo
)
45
QML_ADDED_IN_VERSION
(2, 8)
46
QML_UNCREATABLE
(
"GraphicsInfo is only available via attached properties."
)
47
QML_ATTACHED
(
QQuickGraphicsInfo
)
48
49
public
:
50
enum
GraphicsApi
{
51
Unknown
=
QSGRendererInterface
::
Unknown
,
52
Software
=
QSGRendererInterface
::
Software
,
53
OpenVG
=
QSGRendererInterface
::
OpenVG
,
54
OpenGL
=
QSGRendererInterface
::
OpenGL
,
55
Direct3D11
=
QSGRendererInterface
::
Direct3D11
,
56
Vulkan
=
QSGRendererInterface
::
Vulkan
,
57
Metal
=
QSGRendererInterface
::
Metal
,
58
Null
=
QSGRendererInterface
::
Null
,
59
Direct3D12
=
QSGRendererInterface
::
Direct3D12
,
60
61
OpenGLRhi
=
QSGRendererInterface
::
OpenGLRhi
,
62
Direct3D11Rhi
=
QSGRendererInterface
::
Direct3D11Rhi
,
63
VulkanRhi
=
QSGRendererInterface
::
VulkanRhi
,
64
MetalRhi
=
QSGRendererInterface
::
MetalRhi
,
65
NullRhi
=
QSGRendererInterface
::
NullRhi
66
};
67
Q_ENUM(GraphicsApi)
68
69
enum
ShaderType
{
70
UnknownShadingLanguage
=
QSGRendererInterface
::
UnknownShadingLanguage
,
71
GLSL
=
QSGRendererInterface
::
GLSL
,
72
HLSL
=
QSGRendererInterface
::
HLSL
,
73
RhiShader
=
QSGRendererInterface
::
RhiShader
74
};
75
Q_ENUM
(
ShaderType
)
76
77
enum
ShaderCompilationType
{
78
RuntimeCompilation
=
QSGRendererInterface
::
RuntimeCompilation
,
79
OfflineCompilation
=
QSGRendererInterface
::
OfflineCompilation
80
};
81
Q_ENUM
(
ShaderCompilationType
)
82
83
enum
ShaderSourceType
{
84
ShaderSourceString
=
QSGRendererInterface
::
ShaderSourceString
,
85
ShaderSourceFile
=
QSGRendererInterface
::
ShaderSourceFile
,
86
ShaderByteCode
=
QSGRendererInterface
::
ShaderByteCode
87
};
88
Q_ENUM
(
ShaderSourceType
)
89
90
enum
OpenGLContextProfile
{
91
OpenGLNoProfile
=
QSurfaceFormat
::
NoProfile
,
92
OpenGLCoreProfile
=
QSurfaceFormat
::
CoreProfile
,
93
OpenGLCompatibilityProfile
=
QSurfaceFormat
::
CompatibilityProfile
94
};
95
Q_ENUM
(
OpenGLContextProfile
)
96
97
enum
RenderableType
{
98
SurfaceFormatUnspecified
=
QSurfaceFormat
::
DefaultRenderableType
,
99
SurfaceFormatOpenGL
=
QSurfaceFormat
::
OpenGL
,
100
SurfaceFormatOpenGLES
=
QSurfaceFormat
::
OpenGLES
101
};
102
Q_ENUM
(
RenderableType
)
103
104
QQuickGraphicsInfo
(QQuickItem *item =
nullptr
);
105
QQuickGraphicsInfo
(QQuickWindow *window);
106
107
static
QQuickGraphicsInfo
*
qmlAttachedProperties
(QObject *object);
108
109
GraphicsApi
api
()
const
{
return
m_api; }
110
ShaderType
shaderType
()
const
{
return
m_shaderType; }
111
ShaderCompilationType
shaderCompilationType
()
const
{
return
m_shaderCompilationType; }
112
ShaderSourceType
shaderSourceType
()
const
{
return
m_shaderSourceType; }
113
114
int
majorVersion
()
const
{
return
m_majorVersion; }
115
int
minorVersion
()
const
{
return
m_minorVersion; }
116
OpenGLContextProfile
profile
()
const
{
return
m_profile; }
117
RenderableType
renderableType
()
const
{
return
m_renderableType; }
118
119
Q_SIGNALS
:
120
void
apiChanged
();
121
void
shaderTypeChanged
();
122
void
shaderCompilationTypeChanged
();
123
void
shaderSourceTypeChanged
();
124
125
void
majorVersionChanged
();
126
void
minorVersionChanged
();
127
void
profileChanged
();
128
void
renderableTypeChanged
();
129
130
private
Q_SLOTS
:
131
void
updateInfo
();
132
void
setWindow(QQuickWindow *window);
133
134
private
:
135
QPointer<QQuickWindow> m_window;
136
GraphicsApi m_api =
Unknown
;
137
ShaderType
m_shaderType =
UnknownShadingLanguage
;
138
ShaderCompilationType
m_shaderCompilationType =
ShaderCompilationType
(0);
139
ShaderSourceType
m_shaderSourceType =
ShaderSourceType
(0);
140
int
m_majorVersion = 2;
141
int
m_minorVersion = 0;
142
OpenGLContextProfile
m_profile =
OpenGLNoProfile
;
143
RenderableType
m_renderableType =
SurfaceFormatUnspecified
;
144
};
145
146
QT_END_NAMESPACE
147
148
#
endif
// QQUICKGRAPHICSINFO_P_H
QQuickGraphicsInfo
Definition
qquickgraphicsinfo_p.h:32
QQuickGraphicsInfo::minorVersionChanged
void minorVersionChanged()
QQuickGraphicsInfo::ShaderType
ShaderType
Definition
qquickgraphicsinfo_p.h:69
QQuickGraphicsInfo::RhiShader
@ RhiShader
Definition
qquickgraphicsinfo_p.h:73
QQuickGraphicsInfo::UnknownShadingLanguage
@ UnknownShadingLanguage
Definition
qquickgraphicsinfo_p.h:70
QQuickGraphicsInfo::HLSL
@ HLSL
Definition
qquickgraphicsinfo_p.h:72
QQuickGraphicsInfo::GLSL
@ GLSL
Definition
qquickgraphicsinfo_p.h:71
QQuickGraphicsInfo::api
GraphicsApi api() const
Definition
qquickgraphicsinfo_p.h:109
QQuickGraphicsInfo::renderableTypeChanged
void renderableTypeChanged()
QQuickGraphicsInfo::OpenGLContextProfile
OpenGLContextProfile
Definition
qquickgraphicsinfo_p.h:90
QQuickGraphicsInfo::OpenGLCompatibilityProfile
@ OpenGLCompatibilityProfile
Definition
qquickgraphicsinfo_p.h:93
QQuickGraphicsInfo::OpenGLNoProfile
@ OpenGLNoProfile
Definition
qquickgraphicsinfo_p.h:91
QQuickGraphicsInfo::OpenGLCoreProfile
@ OpenGLCoreProfile
Definition
qquickgraphicsinfo_p.h:92
QQuickGraphicsInfo::qmlAttachedProperties
static QQuickGraphicsInfo * qmlAttachedProperties(QObject *object)
Definition
qquickgraphicsinfo.cpp:44
QQuickGraphicsInfo::shaderCompilationTypeChanged
void shaderCompilationTypeChanged()
QQuickGraphicsInfo::majorVersion
int majorVersion() const
Definition
qquickgraphicsinfo_p.h:114
QQuickGraphicsInfo::QQuickGraphicsInfo
QQuickGraphicsInfo(QQuickWindow *window)
Definition
qquickgraphicsinfo.cpp:37
QQuickGraphicsInfo::RenderableType
RenderableType
Definition
qquickgraphicsinfo_p.h:97
QQuickGraphicsInfo::SurfaceFormatOpenGLES
@ SurfaceFormatOpenGLES
Definition
qquickgraphicsinfo_p.h:100
QQuickGraphicsInfo::SurfaceFormatOpenGL
@ SurfaceFormatOpenGL
Definition
qquickgraphicsinfo_p.h:99
QQuickGraphicsInfo::SurfaceFormatUnspecified
@ SurfaceFormatUnspecified
Definition
qquickgraphicsinfo_p.h:98
QQuickGraphicsInfo::shaderCompilationType
ShaderCompilationType shaderCompilationType() const
Definition
qquickgraphicsinfo_p.h:111
QQuickGraphicsInfo::majorVersionChanged
void majorVersionChanged()
QQuickGraphicsInfo::profile
OpenGLContextProfile profile() const
Definition
qquickgraphicsinfo_p.h:116
QQuickGraphicsInfo::profileChanged
void profileChanged()
QQuickGraphicsInfo::shaderSourceType
ShaderSourceType shaderSourceType() const
Definition
qquickgraphicsinfo_p.h:112
QQuickGraphicsInfo::ShaderSourceType
ShaderSourceType
Definition
qquickgraphicsinfo_p.h:83
QQuickGraphicsInfo::ShaderSourceFile
@ ShaderSourceFile
Definition
qquickgraphicsinfo_p.h:85
QQuickGraphicsInfo::ShaderByteCode
@ ShaderByteCode
Definition
qquickgraphicsinfo_p.h:86
QQuickGraphicsInfo::ShaderSourceString
@ ShaderSourceString
Definition
qquickgraphicsinfo_p.h:84
QQuickGraphicsInfo::shaderType
ShaderType shaderType() const
Definition
qquickgraphicsinfo_p.h:110
QQuickGraphicsInfo::shaderSourceTypeChanged
void shaderSourceTypeChanged()
QQuickGraphicsInfo::minorVersion
int minorVersion() const
Definition
qquickgraphicsinfo_p.h:115
QQuickGraphicsInfo::ShaderCompilationType
ShaderCompilationType
Definition
qquickgraphicsinfo_p.h:77
QQuickGraphicsInfo::OfflineCompilation
@ OfflineCompilation
Definition
qquickgraphicsinfo_p.h:79
QQuickGraphicsInfo::RuntimeCompilation
@ RuntimeCompilation
Definition
qquickgraphicsinfo_p.h:78
QQuickGraphicsInfo::renderableType
RenderableType renderableType() const
Definition
qquickgraphicsinfo_p.h:117
QQuickGraphicsInfo::shaderTypeChanged
void shaderTypeChanged()
QQuickItem
The QQuickItem class provides the most basic of all visual items in \l {Qt Quick}.
Definition
qquickitem.h:64
QQuickWindow
\qmltype Window \nativetype QQuickWindow \inqmlmodule QtQuick
Definition
qquickwindow.h:43
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qsequentialanimationgroup.cpp:47
qtdeclarative
src
quick
items
qquickgraphicsinfo_p.h
Generated on
for Qt by
1.18.0