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