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
qopenglqueryhelper_p.h
Go to the documentation of this file.
1
// Copyright (C) 2013 Klaralvdalens Datakonsult AB (KDAB).
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
QOPENGLQUERYHELPER_P_H
6
#
define
QOPENGLQUERYHELPER_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
<
QtGui
/
private
/
qtguiglobal_p
.
h
>
20
21
#
if
!
QT_CONFIG
(
opengles2
)
22
23
#
include
<
QtGui
/
QOpenGLContext
>
24
25
QT_BEGIN_NAMESPACE
26
27
// Helper class used by QOpenGLTimerQuery and later will be used by
28
// QOpenGLOcclusionQuery
29
class
QOpenGLQueryHelper
30
{
31
public
:
32
QOpenGLQueryHelper(QOpenGLContext *context)
33
: GetQueryObjectuiv(
nullptr
),
34
GetQueryObjectiv(
nullptr
),
35
GetQueryiv(
nullptr
),
36
EndQuery(
nullptr
),
37
BeginQuery(
nullptr
),
38
IsQuery(
nullptr
),
39
DeleteQueries(
nullptr
),
40
GenQueries(
nullptr
),
41
GetInteger64v(
nullptr
),
42
GetQueryObjectui64v(
nullptr
),
43
GetQueryObjecti64v(
nullptr
),
44
QueryCounter(
nullptr
)
45
{
46
Q_ASSERT(context);
47
48
// Core in OpenGL >=1.5
49
GetQueryObjectuiv =
reinterpret_cast
<
void
(QOPENGLF_APIENTRYP)(GLuint , GLenum , GLuint *)>(context->getProcAddress(
"glGetQueryObjectuiv"
));
50
GetQueryObjectiv =
reinterpret_cast
<
void
(QOPENGLF_APIENTRYP)(GLuint , GLenum , GLint *)>(context->getProcAddress(
"glGetQueryObjectiv"
));
51
GetQueryiv =
reinterpret_cast
<
void
(QOPENGLF_APIENTRYP)(GLenum , GLenum , GLint *)>(context->getProcAddress(
"glGetQueryiv"
));
52
EndQuery =
reinterpret_cast
<
void
(QOPENGLF_APIENTRYP)(GLenum )>(context->getProcAddress(
"glEndQuery"
));
53
BeginQuery =
reinterpret_cast
<
void
(QOPENGLF_APIENTRYP)(GLenum , GLuint )>(context->getProcAddress(
"glBeginQuery"
));
54
IsQuery =
reinterpret_cast
<GLboolean (QOPENGLF_APIENTRYP)(GLuint )>(context->getProcAddress(
"glIsQuery"
));
55
DeleteQueries =
reinterpret_cast
<
void
(QOPENGLF_APIENTRYP)(GLsizei ,
const
GLuint *)>(context->getProcAddress(
"glDeleteQueries"
));
56
GenQueries =
reinterpret_cast
<
void
(QOPENGLF_APIENTRYP)(GLsizei , GLuint *)>(context->getProcAddress(
"glGenQueries"
));
57
58
// Core in OpenGL >=3.2
59
GetInteger64v =
reinterpret_cast
<
void
(QOPENGLF_APIENTRYP)(GLenum , GLint64 *)>(context->getProcAddress(
"glGetInteger64v"
));
60
61
// Core in OpenGL >=3.3 / ARB_timer_query
62
GetQueryObjectui64v =
reinterpret_cast
<
void
(QOPENGLF_APIENTRYP)(GLuint , GLenum , GLuint64 *)>(context->getProcAddress(
"glGetQueryObjectui64v"
));
63
GetQueryObjecti64v =
reinterpret_cast
<
void
(QOPENGLF_APIENTRYP)(GLuint , GLenum , GLint64 *)>(context->getProcAddress(
"glGetQueryObjecti64v"
));
64
QueryCounter =
reinterpret_cast
<
void
(QOPENGLF_APIENTRYP)(GLuint , GLenum )>(context->getProcAddress(
"glQueryCounter"
));
65
}
66
67
inline
void
glGetQueryObjectuiv(GLuint id, GLenum pname, GLuint *params)
68
{
69
GetQueryObjectuiv(id, pname, params);
70
}
71
72
inline
void
glGetQueryObjectiv(GLuint id, GLenum pname, GLint *params)
73
{
74
GetQueryObjectiv(id, pname, params);
75
}
76
77
inline
void
glGetQueryiv(GLenum target, GLenum pname, GLint *params)
78
{
79
GetQueryiv(target, pname, params);
80
}
81
82
inline
void
glEndQuery(GLenum target)
83
{
84
EndQuery(target);
85
}
86
87
inline
void
glBeginQuery(GLenum target, GLuint id)
88
{
89
BeginQuery(target, id);
90
}
91
92
inline
GLboolean glIsQuery(GLuint id)
93
{
94
return
IsQuery(id);
95
}
96
97
inline
void
glDeleteQueries(GLsizei n,
const
GLuint *ids)
98
{
99
DeleteQueries(n, ids);
100
}
101
102
inline
void
glGenQueries(GLsizei n, GLuint *ids)
103
{
104
GenQueries(n, ids);
105
}
106
107
inline
void
glGetInteger64v(GLenum pname, GLint64 *params)
108
{
109
GetInteger64v(pname, params);
110
}
111
112
inline
void
glGetQueryObjectui64v(GLuint id, GLenum pname, GLuint64 *params)
113
{
114
GetQueryObjectui64v(id, pname, params);
115
}
116
117
inline
void
glGetQueryObjecti64v(GLuint id, GLenum pname, GLint64 *params)
118
{
119
GetQueryObjecti64v(id, pname, params);
120
}
121
122
inline
void
glQueryCounter(GLuint id, GLenum target)
123
{
124
QueryCounter(id, target);
125
}
126
127
private
:
128
// Core in OpenGL >=1.5
129
void
(QOPENGLF_APIENTRYP GetQueryObjectuiv)(GLuint id, GLenum pname, GLuint *params);
130
void
(QOPENGLF_APIENTRYP GetQueryObjectiv)(GLuint id, GLenum pname, GLint *params);
131
void
(QOPENGLF_APIENTRYP GetQueryiv)(GLenum target, GLenum pname, GLint *params);
132
void
(QOPENGLF_APIENTRYP EndQuery)(GLenum target);
133
void
(QOPENGLF_APIENTRYP BeginQuery)(GLenum target, GLuint id);
134
GLboolean (QOPENGLF_APIENTRYP IsQuery)(GLuint id);
135
void
(QOPENGLF_APIENTRYP DeleteQueries)(GLsizei n,
const
GLuint *ids);
136
void
(QOPENGLF_APIENTRYP GenQueries)(GLsizei n, GLuint *ids);
137
138
// Core in OpenGL >=3.2
139
void
(QOPENGLF_APIENTRYP GetInteger64v)(GLenum pname, GLint64 *params);
140
141
// Core in OpenGL >=3.3 and provided by ARB_timer_query
142
void
(QOPENGLF_APIENTRYP GetQueryObjectui64v)(GLuint id, GLenum pname, GLuint64 *params);
143
void
(QOPENGLF_APIENTRYP GetQueryObjecti64v)(GLuint id, GLenum pname, GLint64 *params);
144
void
(QOPENGLF_APIENTRYP QueryCounter)(GLuint id, GLenum target);
145
};
146
147
QT_END_NAMESPACE
148
149
#
endif
150
151
#
endif
// QOPENGLQUERYHELPER_P_H
QOpenGLTimeMonitorPrivate
Definition
qopengltimerquery.cpp:430
QOpenGLTimeMonitorPrivate::QOpenGLTimeMonitorPrivate
QOpenGLTimeMonitorPrivate()
Definition
qopengltimerquery.cpp:432
QOpenGLTimeMonitorPrivate::currentSample
int currentSample
Definition
qopengltimerquery.cpp:467
QOpenGLTimeMonitorPrivate::intervals
QList< GLuint64 > intervals() const
Definition
qopengltimerquery.cpp:579
QOpenGLTimeMonitorPrivate::destroy
void destroy()
Definition
qopengltimerquery.cpp:516
QOpenGLTimeMonitorPrivate::timeSamples
QList< GLuint64 > timeSamples
Definition
qopengltimerquery.cpp:460
QOpenGLTimeMonitorPrivate::timers
QList< GLuint > timers
Definition
qopengltimerquery.cpp:459
QOpenGLTimeMonitorPrivate::isResultAvailable
bool isResultAvailable() const
Definition
qopengltimerquery.cpp:554
QOpenGLTimeMonitorPrivate::context
QOpenGLContext * context
Definition
qopengltimerquery.cpp:462
QOpenGLTimeMonitorPrivate::core
QOpenGLQueryHelper * core
Definition
qopengltimerquery.cpp:463
QOpenGLTimeMonitorPrivate::requestedSampleCount
int requestedSampleCount
Definition
qopengltimerquery.cpp:466
QOpenGLTimeMonitorPrivate::timerQueryActive
bool timerQueryActive
Definition
qopengltimerquery.cpp:468
QOpenGLTimeMonitorPrivate::~QOpenGLTimeMonitorPrivate
~QOpenGLTimeMonitorPrivate()
Definition
qopengltimerquery.cpp:445
QOpenGLTimeMonitorPrivate::create
bool create()
Definition
qopengltimerquery.cpp:471
QOpenGLTimeMonitorPrivate::ext
QExtTimerQueryHelper * ext
Definition
qopengltimerquery.cpp:464
QOpenGLTimeMonitorPrivate::reset
void reset()
Definition
qopengltimerquery.cpp:603
QOpenGLTimeMonitorPrivate::recordSample
void recordSample()
Definition
qopengltimerquery.cpp:530
QOpenGLTimeMonitorPrivate::samples
QList< GLuint64 > samples() const
Definition
qopengltimerquery.cpp:564
QOpenGLTimerQueryPrivate
Definition
qopengltimerquery.cpp:41
QOpenGLTimerQueryPrivate::result
GLuint64 result() const
Definition
qopengltimerquery.cpp:194
QOpenGLTimerQueryPrivate::QOpenGLTimerQueryPrivate
QOpenGLTimerQueryPrivate()
Definition
qopengltimerquery.cpp:43
QOpenGLTimerQueryPrivate::begin
void begin()
Definition
qopengltimerquery.cpp:149
QOpenGLTimerQueryPrivate::isResultAvailable
bool isResultAvailable() const
Definition
qopengltimerquery.cpp:187
QOpenGLTimerQueryPrivate::~QOpenGLTimerQueryPrivate
~QOpenGLTimerQueryPrivate()
Definition
qopengltimerquery.cpp:52
QOpenGLTimerQueryPrivate::create
bool create()
Definition
qopengltimerquery.cpp:88
QOpenGLTimerQueryPrivate::timer
GLuint timer
Definition
qopengltimerquery.cpp:85
QOpenGLTimerQueryPrivate::end
void end()
Definition
qopengltimerquery.cpp:154
QOpenGLTimerQueryPrivate::waitForTimeStamp
GLuint64 waitForTimeStamp() const
Definition
qopengltimerquery.cpp:172
QOpenGLTimerQueryPrivate::core
QOpenGLQueryHelper * core
Definition
qopengltimerquery.cpp:82
QOpenGLTimerQueryPrivate::context
QOpenGLContext * context
Definition
qopengltimerquery.cpp:81
QOpenGLTimerQueryPrivate::destroy
void destroy()
Definition
qopengltimerquery.cpp:129
QOpenGLTimerQueryPrivate::recordTimestamp
void recordTimestamp()
Definition
qopengltimerquery.cpp:159
QOpenGLTimerQueryPrivate::ext
QExtTimerQueryHelper * ext
Definition
qopengltimerquery.cpp:83
QOpenGLTimerQueryPrivate::timeInterval
GLuint64 timeInterval
Definition
qopengltimerquery.cpp:84
GL_TIME_ELAPSED_EXT
#define GL_TIME_ELAPSED_EXT
Definition
qopengles2ext.h:1290
GL_TIME_ELAPSED
#define GL_TIME_ELAPSED
Definition
qopenglext.h:1553
qtbase
src
opengl
qopenglqueryhelper_p.h
Generated on
for Qt by
1.18.0