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