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