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_4_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_1_0_Deprecated(nullptr)
53 , d_1_1_Deprecated(nullptr)
54 , d_1_2_Deprecated(nullptr)
55 , d_1_3_Deprecated(nullptr)
56 , d_1_4_Deprecated(nullptr)
57 , d_3_3_Deprecated(nullptr)
58{
59}
60
62{
63 if (d_1_0_Core) {
64 d_1_0_Core->refs.deref();
65 Q_ASSERT(d_1_0_Core->refs.loadRelaxed());
66 }
67 if (d_1_1_Core) {
68 d_1_1_Core->refs.deref();
69 Q_ASSERT(d_1_1_Core->refs.loadRelaxed());
70 }
71 if (d_1_2_Core) {
72 d_1_2_Core->refs.deref();
73 Q_ASSERT(d_1_2_Core->refs.loadRelaxed());
74 }
75 if (d_1_3_Core) {
76 d_1_3_Core->refs.deref();
77 Q_ASSERT(d_1_3_Core->refs.loadRelaxed());
78 }
79 if (d_1_4_Core) {
80 d_1_4_Core->refs.deref();
81 Q_ASSERT(d_1_4_Core->refs.loadRelaxed());
82 }
83 if (d_1_5_Core) {
84 d_1_5_Core->refs.deref();
85 Q_ASSERT(d_1_5_Core->refs.loadRelaxed());
86 }
87 if (d_2_0_Core) {
88 d_2_0_Core->refs.deref();
89 Q_ASSERT(d_2_0_Core->refs.loadRelaxed());
90 }
91 if (d_2_1_Core) {
92 d_2_1_Core->refs.deref();
93 Q_ASSERT(d_2_1_Core->refs.loadRelaxed());
94 }
95 if (d_3_0_Core) {
96 d_3_0_Core->refs.deref();
97 Q_ASSERT(d_3_0_Core->refs.loadRelaxed());
98 }
99 if (d_3_1_Core) {
100 d_3_1_Core->refs.deref();
101 Q_ASSERT(d_3_1_Core->refs.loadRelaxed());
102 }
103 if (d_3_2_Core) {
104 d_3_2_Core->refs.deref();
105 Q_ASSERT(d_3_2_Core->refs.loadRelaxed());
106 }
107 if (d_3_3_Core) {
108 d_3_3_Core->refs.deref();
109 Q_ASSERT(d_3_3_Core->refs.loadRelaxed());
110 }
111 if (d_4_0_Core) {
112 d_4_0_Core->refs.deref();
113 Q_ASSERT(d_4_0_Core->refs.loadRelaxed());
114 }
115 if (d_4_1_Core) {
116 d_4_1_Core->refs.deref();
117 Q_ASSERT(d_4_1_Core->refs.loadRelaxed());
118 }
119 if (d_4_2_Core) {
120 d_4_2_Core->refs.deref();
121 Q_ASSERT(d_4_2_Core->refs.loadRelaxed());
122 }
123 if (d_4_3_Core) {
124 d_4_3_Core->refs.deref();
125 Q_ASSERT(d_4_3_Core->refs.loadRelaxed());
126 }
127 if (d_4_4_Core) {
128 d_4_4_Core->refs.deref();
129 Q_ASSERT(d_4_4_Core->refs.loadRelaxed());
130 }
131 if (d_1_0_Deprecated) {
132 d_1_0_Deprecated->refs.deref();
133 Q_ASSERT(d_1_0_Deprecated->refs.loadRelaxed());
134 }
135 if (d_1_1_Deprecated) {
136 d_1_1_Deprecated->refs.deref();
137 Q_ASSERT(d_1_1_Deprecated->refs.loadRelaxed());
138 }
139 if (d_1_2_Deprecated) {
140 d_1_2_Deprecated->refs.deref();
141 Q_ASSERT(d_1_2_Deprecated->refs.loadRelaxed());
142 }
143 if (d_1_3_Deprecated) {
144 d_1_3_Deprecated->refs.deref();
145 Q_ASSERT(d_1_3_Deprecated->refs.loadRelaxed());
146 }
147 if (d_1_4_Deprecated) {
148 d_1_4_Deprecated->refs.deref();
149 Q_ASSERT(d_1_4_Deprecated->refs.loadRelaxed());
150 }
151 if (d_3_3_Deprecated) {
152 d_3_3_Deprecated->refs.deref();
153 Q_ASSERT(d_3_3_Deprecated->refs.loadRelaxed());
154 }
155}
156
158{
159 if ( isInitialized() )
160 return true;
161
163
164 // If owned by a context object make sure it is current.
165 // Also check that current context is capable of resolving all needed functions
166 if (((owningContext() && owningContext() == context) || !owningContext())
167 && QOpenGLFunctions_4_4_Compatibility::isContextCompatible(context))
168 {
169 // Associate with private implementation, creating if necessary
170 // Function pointers in the backends are resolved at creation time
173 d_1_0_Core = static_cast<QOpenGLFunctions_1_0_CoreBackend*>(d);
174 d->refs.ref();
175
177 d_1_1_Core = static_cast<QOpenGLFunctions_1_1_CoreBackend*>(d);
178 d->refs.ref();
179
181 d_1_2_Core = static_cast<QOpenGLFunctions_1_2_CoreBackend*>(d);
182 d->refs.ref();
183
185 d_1_3_Core = static_cast<QOpenGLFunctions_1_3_CoreBackend*>(d);
186 d->refs.ref();
187
189 d_1_4_Core = static_cast<QOpenGLFunctions_1_4_CoreBackend*>(d);
190 d->refs.ref();
191
193 d_1_5_Core = static_cast<QOpenGLFunctions_1_5_CoreBackend*>(d);
194 d->refs.ref();
195
197 d_2_0_Core = static_cast<QOpenGLFunctions_2_0_CoreBackend*>(d);
198 d->refs.ref();
199
201 d_2_1_Core = static_cast<QOpenGLFunctions_2_1_CoreBackend*>(d);
202 d->refs.ref();
203
205 d_3_0_Core = static_cast<QOpenGLFunctions_3_0_CoreBackend*>(d);
206 d->refs.ref();
207
209 d_3_1_Core = static_cast<QOpenGLFunctions_3_1_CoreBackend*>(d);
210 d->refs.ref();
211
213 d_3_2_Core = static_cast<QOpenGLFunctions_3_2_CoreBackend*>(d);
214 d->refs.ref();
215
217 d_3_3_Core = static_cast<QOpenGLFunctions_3_3_CoreBackend*>(d);
218 d->refs.ref();
219
221 d_4_0_Core = static_cast<QOpenGLFunctions_4_0_CoreBackend*>(d);
222 d->refs.ref();
223
225 d_4_1_Core = static_cast<QOpenGLFunctions_4_1_CoreBackend*>(d);
226 d->refs.ref();
227
229 d_4_2_Core = static_cast<QOpenGLFunctions_4_2_CoreBackend*>(d);
230 d->refs.ref();
231
233 d_4_3_Core = static_cast<QOpenGLFunctions_4_3_CoreBackend*>(d);
234 d->refs.ref();
235
237 d_4_4_Core = static_cast<QOpenGLFunctions_4_4_CoreBackend*>(d);
238 d->refs.ref();
239
241 d_1_0_Deprecated = static_cast<QOpenGLFunctions_1_0_DeprecatedBackend*>(d);
242 d->refs.ref();
243
245 d_1_1_Deprecated = static_cast<QOpenGLFunctions_1_1_DeprecatedBackend*>(d);
246 d->refs.ref();
247
249 d_1_2_Deprecated = static_cast<QOpenGLFunctions_1_2_DeprecatedBackend*>(d);
250 d->refs.ref();
251
253 d_1_3_Deprecated = static_cast<QOpenGLFunctions_1_3_DeprecatedBackend*>(d);
254 d->refs.ref();
255
257 d_1_4_Deprecated = static_cast<QOpenGLFunctions_1_4_DeprecatedBackend*>(d);
258 d->refs.ref();
259
261 d_3_3_Deprecated = static_cast<QOpenGLFunctions_3_3_DeprecatedBackend*>(d);
262 d->refs.ref();
263
265 }
266 return isInitialized();
267}
268
269bool QOpenGLFunctions_4_4_Compatibility::isContextCompatible(QOpenGLContext *context)
270{
272 QSurfaceFormat f = context->format();
273 const QPair<int, int> v = qMakePair(f.majorVersion(), f.minorVersion());
274 if (v < qMakePair(4, 4))
275 return false;
276
277 if (f.profile() == QSurfaceFormat::CoreProfile)
278 return false;
279
280 return true;
281}
282
283QOpenGLVersionProfile QOpenGLFunctions_4_4_Compatibility::versionProfile()
284{
286 v.setVersion(4, 4);
288 return v;
289}
290
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