Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
qopenglfunctions_4_5_compatibility.cpp
Go to the documentation of this file.
1// Copyright (C) 2015 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/***************************************************************************
4** This file was generated by glgen version 0.1
5** Command line was: glgen
6**
7** glgen is Copyright (C) 2013 Klaralvdalens Datakonsult AB (KDAB)
8**
9** This is an auto-generated file.
10** Do not edit! All changes made to it will be lost.
11**
12****************************************************************************/
13
15#include "qopenglcontext.h"
16
18
35 , d_1_0_Core(nullptr)
36 , d_1_1_Core(nullptr)
37 , d_1_2_Core(nullptr)
38 , d_1_3_Core(nullptr)
39 , d_1_4_Core(nullptr)
40 , d_1_5_Core(nullptr)
41 , d_2_0_Core(nullptr)
42 , d_2_1_Core(nullptr)
43 , d_3_0_Core(nullptr)
44 , d_3_1_Core(nullptr)
45 , d_3_2_Core(nullptr)
46 , d_3_3_Core(nullptr)
47 , d_4_0_Core(nullptr)
48 , d_4_1_Core(nullptr)
49 , d_4_2_Core(nullptr)
50 , d_4_3_Core(nullptr)
51 , d_4_4_Core(nullptr)
52 , d_4_5_Core(nullptr)
53 , d_1_0_Deprecated(nullptr)
54 , d_1_1_Deprecated(nullptr)
55 , d_1_2_Deprecated(nullptr)
56 , d_1_3_Deprecated(nullptr)
57 , d_1_4_Deprecated(nullptr)
58 , d_3_3_Deprecated(nullptr)
59 , d_4_5_Deprecated(nullptr)
60{
61}
62
64{
65 if (d_1_0_Core) {
66 d_1_0_Core->refs.deref();
67 Q_ASSERT(d_1_0_Core->refs.loadRelaxed());
68 }
69 if (d_1_1_Core) {
70 d_1_1_Core->refs.deref();
71 Q_ASSERT(d_1_1_Core->refs.loadRelaxed());
72 }
73 if (d_1_2_Core) {
74 d_1_2_Core->refs.deref();
75 Q_ASSERT(d_1_2_Core->refs.loadRelaxed());
76 }
77 if (d_1_3_Core) {
78 d_1_3_Core->refs.deref();
79 Q_ASSERT(d_1_3_Core->refs.loadRelaxed());
80 }
81 if (d_1_4_Core) {
82 d_1_4_Core->refs.deref();
83 Q_ASSERT(d_1_4_Core->refs.loadRelaxed());
84 }
85 if (d_1_5_Core) {
86 d_1_5_Core->refs.deref();
87 Q_ASSERT(d_1_5_Core->refs.loadRelaxed());
88 }
89 if (d_2_0_Core) {
90 d_2_0_Core->refs.deref();
91 Q_ASSERT(d_2_0_Core->refs.loadRelaxed());
92 }
93 if (d_2_1_Core) {
94 d_2_1_Core->refs.deref();
95 Q_ASSERT(d_2_1_Core->refs.loadRelaxed());
96 }
97 if (d_3_0_Core) {
98 d_3_0_Core->refs.deref();
99 Q_ASSERT(d_3_0_Core->refs.loadRelaxed());
100 }
101 if (d_3_1_Core) {
102 d_3_1_Core->refs.deref();
103 Q_ASSERT(d_3_1_Core->refs.loadRelaxed());
104 }
105 if (d_3_2_Core) {
106 d_3_2_Core->refs.deref();
107 Q_ASSERT(d_3_2_Core->refs.loadRelaxed());
108 }
109 if (d_3_3_Core) {
110 d_3_3_Core->refs.deref();
111 Q_ASSERT(d_3_3_Core->refs.loadRelaxed());
112 }
113 if (d_4_0_Core) {
114 d_4_0_Core->refs.deref();
115 Q_ASSERT(d_4_0_Core->refs.loadRelaxed());
116 }
117 if (d_4_1_Core) {
118 d_4_1_Core->refs.deref();
119 Q_ASSERT(d_4_1_Core->refs.loadRelaxed());
120 }
121 if (d_4_2_Core) {
122 d_4_2_Core->refs.deref();
123 Q_ASSERT(d_4_2_Core->refs.loadRelaxed());
124 }
125 if (d_4_3_Core) {
126 d_4_3_Core->refs.deref();
127 Q_ASSERT(d_4_3_Core->refs.loadRelaxed());
128 }
129 if (d_4_4_Core) {
130 d_4_4_Core->refs.deref();
131 Q_ASSERT(d_4_4_Core->refs.loadRelaxed());
132 }
133 if (d_4_5_Core) {
134 d_4_5_Core->refs.deref();
135 Q_ASSERT(d_4_5_Core->refs.loadRelaxed());
136 }
137 if (d_1_0_Deprecated) {
138 d_1_0_Deprecated->refs.deref();
139 Q_ASSERT(d_1_0_Deprecated->refs.loadRelaxed());
140 }
141 if (d_1_1_Deprecated) {
142 d_1_1_Deprecated->refs.deref();
143 Q_ASSERT(d_1_1_Deprecated->refs.loadRelaxed());
144 }
145 if (d_1_2_Deprecated) {
146 d_1_2_Deprecated->refs.deref();
147 Q_ASSERT(d_1_2_Deprecated->refs.loadRelaxed());
148 }
149 if (d_1_3_Deprecated) {
150 d_1_3_Deprecated->refs.deref();
151 Q_ASSERT(d_1_3_Deprecated->refs.loadRelaxed());
152 }
153 if (d_1_4_Deprecated) {
154 d_1_4_Deprecated->refs.deref();
155 Q_ASSERT(d_1_4_Deprecated->refs.loadRelaxed());
156 }
157 if (d_3_3_Deprecated) {
158 d_3_3_Deprecated->refs.deref();
159 Q_ASSERT(d_3_3_Deprecated->refs.loadRelaxed());
160 }
161 if (d_4_5_Deprecated) {
162 d_4_5_Deprecated->refs.deref();
163 Q_ASSERT(d_4_5_Deprecated->refs.loadRelaxed());
164 }
165}
166
168{
169 if ( isInitialized() )
170 return true;
171
173
174 // If owned by a context object make sure it is current.
175 // Also check that current context is capable of resolving all needed functions
176 if (((owningContext() && owningContext() == context) || !owningContext())
177 && QOpenGLFunctions_4_5_Compatibility::isContextCompatible(context))
178 {
179 // Associate with private implementation, creating if necessary
180 // Function pointers in the backends are resolved at creation time
183 d_1_0_Core = static_cast<QOpenGLFunctions_1_0_CoreBackend*>(d);
184 d->refs.ref();
185
187 d_1_1_Core = static_cast<QOpenGLFunctions_1_1_CoreBackend*>(d);
188 d->refs.ref();
189
191 d_1_2_Core = static_cast<QOpenGLFunctions_1_2_CoreBackend*>(d);
192 d->refs.ref();
193
195 d_1_3_Core = static_cast<QOpenGLFunctions_1_3_CoreBackend*>(d);
196 d->refs.ref();
197
199 d_1_4_Core = static_cast<QOpenGLFunctions_1_4_CoreBackend*>(d);
200 d->refs.ref();
201
203 d_1_5_Core = static_cast<QOpenGLFunctions_1_5_CoreBackend*>(d);
204 d->refs.ref();
205
207 d_2_0_Core = static_cast<QOpenGLFunctions_2_0_CoreBackend*>(d);
208 d->refs.ref();
209
211 d_2_1_Core = static_cast<QOpenGLFunctions_2_1_CoreBackend*>(d);
212 d->refs.ref();
213
215 d_3_0_Core = static_cast<QOpenGLFunctions_3_0_CoreBackend*>(d);
216 d->refs.ref();
217
219 d_3_1_Core = static_cast<QOpenGLFunctions_3_1_CoreBackend*>(d);
220 d->refs.ref();
221
223 d_3_2_Core = static_cast<QOpenGLFunctions_3_2_CoreBackend*>(d);
224 d->refs.ref();
225
227 d_3_3_Core = static_cast<QOpenGLFunctions_3_3_CoreBackend*>(d);
228 d->refs.ref();
229
231 d_4_0_Core = static_cast<QOpenGLFunctions_4_0_CoreBackend*>(d);
232 d->refs.ref();
233
235 d_4_1_Core = static_cast<QOpenGLFunctions_4_1_CoreBackend*>(d);
236 d->refs.ref();
237
239 d_4_2_Core = static_cast<QOpenGLFunctions_4_2_CoreBackend*>(d);
240 d->refs.ref();
241
243 d_4_3_Core = static_cast<QOpenGLFunctions_4_3_CoreBackend*>(d);
244 d->refs.ref();
245
247 d_4_4_Core = static_cast<QOpenGLFunctions_4_4_CoreBackend*>(d);
248 d->refs.ref();
249
251 d_4_5_Core = static_cast<QOpenGLFunctions_4_5_CoreBackend*>(d);
252 d->refs.ref();
253
255 d_1_0_Deprecated = static_cast<QOpenGLFunctions_1_0_DeprecatedBackend*>(d);
256 d->refs.ref();
257
259 d_1_1_Deprecated = static_cast<QOpenGLFunctions_1_1_DeprecatedBackend*>(d);
260 d->refs.ref();
261
263 d_1_2_Deprecated = static_cast<QOpenGLFunctions_1_2_DeprecatedBackend*>(d);
264 d->refs.ref();
265
267 d_1_3_Deprecated = static_cast<QOpenGLFunctions_1_3_DeprecatedBackend*>(d);
268 d->refs.ref();
269
271 d_1_4_Deprecated = static_cast<QOpenGLFunctions_1_4_DeprecatedBackend*>(d);
272 d->refs.ref();
273
275 d_3_3_Deprecated = static_cast<QOpenGLFunctions_3_3_DeprecatedBackend*>(d);
276 d->refs.ref();
277
279 d_4_5_Deprecated = static_cast<QOpenGLFunctions_4_5_DeprecatedBackend*>(d);
280 d->refs.ref();
281
283 }
284 return isInitialized();
285}
286
287bool QOpenGLFunctions_4_5_Compatibility::isContextCompatible(QOpenGLContext *context)
288{
290 QSurfaceFormat f = context->format();
291 const QPair<int, int> v = qMakePair(f.majorVersion(), f.minorVersion());
292 if (v < qMakePair(4, 5))
293 return false;
294
295 if (f.profile() == QSurfaceFormat::CoreProfile)
296 return false;
297
298 return true;
299}
300
301QOpenGLVersionProfile QOpenGLFunctions_4_5_Compatibility::versionProfile()
302{
304 v.setVersion(4, 5);
306 return v;
307}
308
static QOpenGLVersionFunctionsBackend * functionsBackend(QOpenGLContext *context, QOpenGLVersionFunctionsBackend::Version v)
QOpenGLContext * owningContext() const
bool ref() noexcept
bool deref() noexcept
T loadRelaxed() const noexcept
\inmodule QtGui
static QOpenGLContext * currentContext()
Returns the last context which called makeCurrent in the current thread, or \nullptr,...
static constexpr Version versionStatus()
static constexpr Version versionStatus()
static constexpr Version versionStatus()
static constexpr Version versionStatus()
static constexpr Version versionStatus()
static constexpr Version versionStatus()
static constexpr Version versionStatus()
static constexpr Version versionStatus()
static constexpr Version versionStatus()
static constexpr Version versionStatus()
static constexpr Version versionStatus()
static constexpr Version versionStatus()
static constexpr Version versionStatus()
static constexpr Version versionStatus()
static constexpr Version versionStatus()
void setVersion(int majorVersion, int minorVersion)
Sets the major and minor version numbers to majorVersion and minorVersion respectively.
The QSurfaceFormat class represents the format of a QSurface. \inmodule QtGui.
Combined button and popup list for selecting options.
static void * context
GLsizei const GLfloat * v
[13]
GLfloat GLfloat f
QT_BEGIN_NAMESPACE constexpr decltype(auto) qMakePair(T1 &&value1, T2 &&value2) noexcept(noexcept(std::make_pair(std::forward< T1 >(value1), std::forward< T2 >(value2))))
Definition qpair.h:19
#define Q_ASSERT(cond)
Definition qrandom.cpp:47
QObject::connect nullptr