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