qopenglversionfunctions.cpp

Absolute File Name:/home/qt/qt5_coco/qt5/qtbase/src/gui/opengl/qopenglversionfunctions.cpp
Source codeSwitch to Preprocessed file
LineSourceCount
1/****************************************************************************-
2**-
3** Copyright (C) 2013 Klaralvdalens Datakonsult AB (KDAB)-
4** Copyright (C) 2016 The Qt Company Ltd.-
5** Contact: https://www.qt.io/licensing/-
6**-
7** This file is part of the QtGui module of the Qt Toolkit.-
8**-
9** $QT_BEGIN_LICENSE:LGPL$-
10** Commercial License Usage-
11** Licensees holding valid commercial Qt licenses may use this file in-
12** accordance with the commercial license agreement provided with the-
13** Software or, alternatively, in accordance with the terms contained in-
14** a written agreement between you and The Qt Company. For licensing terms-
15** and conditions see https://www.qt.io/terms-conditions. For further-
16** information use the contact form at https://www.qt.io/contact-us.-
17**-
18** GNU Lesser General Public License Usage-
19** Alternatively, this file may be used under the terms of the GNU Lesser-
20** General Public License version 3 as published by the Free Software-
21** Foundation and appearing in the file LICENSE.LGPL3 included in the-
22** packaging of this file. Please review the following information to-
23** ensure the GNU Lesser General Public License version 3 requirements-
24** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.-
25**-
26** GNU General Public License Usage-
27** Alternatively, this file may be used under the terms of the GNU-
28** General Public License version 2.0 or (at your option) the GNU General-
29** Public license version 3 or any later version approved by the KDE Free-
30** Qt Foundation. The licenses are as published by the Free Software-
31** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3-
32** included in the packaging of this file. Please review the following-
33** information to ensure the GNU General Public License requirements will-
34** be met: https://www.gnu.org/licenses/gpl-2.0.html and-
35** https://www.gnu.org/licenses/gpl-3.0.html.-
36**-
37** $QT_END_LICENSE$-
38**-
39**-
40** This file was generated by glgen version 0.1-
41** Command line was: glgen-
42**-
43** glgen is Copyright (C) 2013 Klaralvdalens Datakonsult AB (KDAB)-
44**-
45** This is an auto-generated file.-
46** Do not edit! All changes made to it will be lost.-
47**-
48****************************************************************************/-
49-
50#include "qopenglversionfunctions.h"-
51#include "qopenglcontext.h"-
52#include "qdebug.h"-
53-
54QT_BEGIN_NAMESPACE-
55-
56#define QT_OPENGL_COUNT_FUNCTIONS(ret, name, args) +1-
57#define QT_OPENGL_FUNCTION_NAMES(ret, name, args) \-
58 "gl"#name"\0"-
59#define QT_OPENGL_IMPLEMENT(CLASS, FUNCTIONS) \-
60void CLASS::init() \-
61{ \-
62 const char *names = FUNCTIONS(QT_OPENGL_FUNCTION_NAMES); \-
63 const char *name = names; \-
64 for (int i = 0; i < FUNCTIONS(QT_OPENGL_COUNT_FUNCTIONS); ++i) { \-
65 functions[i] = context->getProcAddress(name); \-
66 name += strlen(name) + 1; \-
67 } \-
68}-
69-
70QOpenGLVersionFunctionsStorage::QOpenGLVersionFunctionsStorage()-
71 : backends(0)-
72{-
73}
never executed: end of block
0
74-
75QOpenGLVersionFunctionsStorage::~QOpenGLVersionFunctionsStorage()-
76{-
77 if (backends) {
backendsDescription
TRUEnever evaluated
FALSEnever evaluated
0
78 for (int i = 0; i < QOpenGLVersionFunctionsBackend::OpenGLVersionBackendCount; ++i) {
i < QOpenGLVer...onBackendCountDescription
TRUEnever evaluated
FALSEnever evaluated
0
79 if (backends[i] && !--backends[i]->refs) {
backends[i]Description
TRUEnever evaluated
FALSEnever evaluated
!--backends[i]->refsDescription
TRUEnever evaluated
FALSEnever evaluated
0
80 // deleting the base class is ok, as the derived classes don't have a destructor-
81 delete backends[i];-
82 }
never executed: end of block
0
83 }
never executed: end of block
0
84 delete[] backends;-
85 }
never executed: end of block
0
86}
never executed: end of block
0
87-
88QOpenGLVersionFunctionsBackend *QOpenGLVersionFunctionsStorage::backend(QOpenGLContext *context, QOpenGLVersionFunctionsBackend::Version v)-
89{-
90#ifdef QT_OPENGL_ES-
91 Q_UNUSED(context);-
92 Q_UNUSED(v);-
93 return 0;-
94#else-
95 if (!backends) {
!backendsDescription
TRUEnever evaluated
FALSEnever evaluated
0
96 backends = new QOpenGLVersionFunctionsBackend *[QOpenGLVersionFunctionsBackend::OpenGLVersionBackendCount];-
97 memset(backends, 0, sizeof(QOpenGLVersionFunctionsBackend *)*QOpenGLVersionFunctionsBackend::OpenGLVersionBackendCount);-
98 }
never executed: end of block
0
99 if (backends[v])
backends[v]Description
TRUEnever evaluated
FALSEnever evaluated
0
100 return backends[v];
never executed: return backends[v];
0
101-
102 switch(v) {-
103#define VERSION_ENUM(X) QOpenGLVersionFunctionsBackend::OpenGL_##X-
104#define CREATE_BACKEND(X) \-
105 case VERSION_ENUM(X): \-
106 backends[VERSION_ENUM(X)] = new QOpenGLFunctions_##X##Backend(context); \-
107 break;-
108 QT_OPENGL_VERSIONS(CREATE_BACKEND)
never executed: break;
never executed: break;
never executed: break;
never executed: break;
never executed: break;
never executed: break;
never executed: break;
never executed: break;
never executed: break;
never executed: break;
never executed: break;
never executed: break;
never executed: break;
never executed: break;
never executed: break;
never executed: break;
never executed: break;
never executed: break;
never executed: break;
never executed: break;
never executed: break;
never executed: break;
never executed: break;
never executed: break;
never executed: break;
never executed: break;
never executed: break;
never executed: case QOpenGLVersionFunctionsBackend::OpenGL_1_0_Core:
never executed: case QOpenGLVersionFunctionsBackend::OpenGL_1_1_Core:
never executed: case QOpenGLVersionFunctionsBackend::OpenGL_1_2_Core:
never executed: case QOpenGLVersionFunctionsBackend::OpenGL_1_3_Core:
never executed: case QOpenGLVersionFunctionsBackend::OpenGL_1_4_Core:
never executed: case QOpenGLVersionFunctionsBackend::OpenGL_1_5_Core:
never executed: case QOpenGLVersionFunctionsBackend::OpenGL_2_0_Core:
never executed: case QOpenGLVersionFunctionsBackend::OpenGL_2_1_Core:
never executed: case QOpenGLVersionFunctionsBackend::OpenGL_3_0_Core:
never executed: case QOpenGLVersionFunctionsBackend::OpenGL_3_1_Core:
never executed: case QOpenGLVersionFunctionsBackend::OpenGL_3_2_Core:
never executed: case QOpenGLVersionFunctionsBackend::OpenGL_3_3_Core:
never executed: case QOpenGLVersionFunctionsBackend::OpenGL_4_0_Core:
never executed: case QOpenGLVersionFunctionsBackend::OpenGL_4_1_Core:
never executed: case QOpenGLVersionFunctionsBackend::OpenGL_4_2_Core:
never executed: case QOpenGLVersionFunctionsBackend::OpenGL_4_3_Core:
never executed: case QOpenGLVersionFunctionsBackend::OpenGL_4_4_Core:
never executed: case QOpenGLVersionFunctionsBackend::OpenGL_4_5_Core:
never executed: case QOpenGLVersionFunctionsBackend::OpenGL_1_0_Deprecated:
never executed: case QOpenGLVersionFunctionsBackend::OpenGL_1_1_Deprecated:
never executed: case QOpenGLVersionFunctionsBackend::OpenGL_1_2_Deprecated:
never executed: case QOpenGLVersionFunctionsBackend::OpenGL_1_3_Deprecated:
never executed: case QOpenGLVersionFunctionsBackend::OpenGL_1_4_Deprecated:
never executed: case QOpenGLVersionFunctionsBackend::OpenGL_2_0_Deprecated:
never executed: case QOpenGLVersionFunctionsBackend::OpenGL_3_0_Deprecated:
never executed: case QOpenGLVersionFunctionsBackend::OpenGL_3_3_Deprecated:
never executed: case QOpenGLVersionFunctionsBackend::OpenGL_4_5_Deprecated:
0
109 case QOpenGLVersionFunctionsBackend::OpenGLVersionBackendCount:
never executed: case QOpenGLVersionFunctionsBackend::OpenGLVersionBackendCount:
0
110 Q_UNREACHABLE();-
111 }
never executed: end of block
0
112 // the storage keeps one ref-
113 ++backends[v]->refs;-
114 return backends[v];
never executed: return backends[v];
0
115#endif-
116}-
117-
118QOpenGLVersionFunctionsBackend *QAbstractOpenGLFunctionsPrivate::functionsBackend(QOpenGLContext *context, QOpenGLVersionFunctionsBackend::Version v)-
119{-
120 Q_ASSERT(context);-
121 QOpenGLVersionFunctionsStorage *storage = context->functionsBackendStorage();-
122 return storage->backend(context, v);
never executed: return storage->backend(context, v);
0
123}-
124-
125void QAbstractOpenGLFunctionsPrivate::insertExternalFunctions(QOpenGLContext *context, QAbstractOpenGLFunctions *f)-
126{-
127 Q_ASSERT(context);-
128 context->insertExternalFunctions(f);-
129}
never executed: end of block
0
130-
131void QAbstractOpenGLFunctionsPrivate::removeExternalFunctions(QOpenGLContext *context, QAbstractOpenGLFunctions *f)-
132{-
133 Q_ASSERT(context);-
134 context->removeExternalFunctions(f);-
135}
never executed: end of block
0
136-
137/*!-
138 \class QAbstractOpenGLFunctions-
139 \inmodule QtGui-
140 \since 5.1-
141 \brief The QAbstractOpenGLFunctions class is the base class of a family of-
142 classes that expose all functions for each OpenGL version and-
143 profile.-
144-
145 OpenGL implementations on different platforms are able to link to a variable-
146 number of OpenGL functions depending upon the OpenGL ABI on that platform.-
147 For example, on Microsoft Windows only functions up to those in OpenGL 1.1-
148 can be linked to at build time. All other functions must be resolved at-
149 runtime. The traditional solution to this has been to use either-
150 QOpenGLContext::getProcAddress() or QOpenGLFunctions. The former is tedious-
151 and error prone and means dealing directly with function pointers. The-
152 latter only exposes those functions common to OpenGL ES 2 and desktop-
153 OpenGL. There is however much new OpenGL functionality that is useful when-
154 writing real world OpenGL applications.-
155-
156 Qt now provides a family of classes which all inherit from-
157 QAbstractOpenGLFunctions which expose every core OpenGL function by way of a-
158 corresponding member function. There is a class for every valid combination-
159 of OpenGL version and profile. Each class follows the naming convention:-
160 \badcode-
161 QOpenGLFunctions_<MAJOR VERSION>_<MINOR VERSION>[_PROFILE]-
162 \endcode-
163-
164 For OpenGL versions 1.0 through to 3.0 there are no profiles, leading to the-
165 classes:-
166-
167 \list-
168 \li QOpenGLFunctions_1_0-
169 \li QOpenGLFunctions_1_1-
170 \li QOpenGLFunctions_1_2-
171 \li QOpenGLFunctions_1_3-
172 \li QOpenGLFunctions_1_4-
173 \li QOpenGLFunctions_1_5-
174 \li QOpenGLFunctions_2_0-
175 \li QOpenGLFunctions_2_1-
176 \li QOpenGLFunctions_3_0-
177 \endlist-
178-
179 where each class inherits from QAbstractOpenGLFunctions.-
180-
181 OpenGL version 3.1 removed many deprecated functions leading to a much-
182 simpler and generic API.-
183-
184 With OpenGL 3.2 the concept of profiles was introduced. Two profiles are-
185 currently defined for OpenGL: Core and Compatibility.-
186-
187 The Core profile does not include any of the functions that were removed-
188 in OpenGL 3.1. The Compatibility profile contains all functions in the-
189 Core profile of the same version plus all of the functions that were-
190 removed in OpenGL 3.1. In this way the Compatibility profile classes allow-
191 use of newer OpenGL functionality but also allows you to keep using your-
192 legacy OpenGL code. For new OpenGL code the Core profile should be-
193 preferred.-
194-
195 Please note that some vendors, notably Apple, do not implement the-
196 Compatibility profile. Therefore if you wish to target new OpenGL features-
197 on \macos then you should ensure that you request a Core profile context via-
198 QSurfaceFormat::setProfile().-
199-
200 Qt provides classes for all version and Core and Compatibility profile-
201 combinations. The classes for OpenGL versions 3.1 through to 4.3 are:-
202-
203 \list-
204 \li QOpenGLFunctions_3_1-
205 \li QOpenGLFunctions_3_2_Core-
206 \li QOpenGLFunctions_3_2_Compatibility-
207 \li QOpenGLFunctions_3_3_Core-
208 \li QOpenGLFunctions_3_3_Compatibility-
209 \li QOpenGLFunctions_4_0_Core-
210 \li QOpenGLFunctions_4_0_Compatibility-
211 \li QOpenGLFunctions_4_1_Core-
212 \li QOpenGLFunctions_4_1_Compatibility-
213 \li QOpenGLFunctions_4_2_Core-
214 \li QOpenGLFunctions_4_2_Compatibility-
215 \li QOpenGLFunctions_4_3_Core-
216 \li QOpenGLFunctions_4_3_Compatibility-
217 \endlist-
218-
219 where each class inherits from QAbstractOpenGLFunctions.-
220-
221 A pointer to an object of the class corresponding to the version and-
222 profile of OpenGL in use can be obtained from-
223 QOpenGLContext::versionFunctions(). If obtained in this way, note that-
224 the QOpenGLContext retains ownership of the object. This is so that only-
225 one instance need be created.-
226-
227 Before calling any of the exposed OpenGL functions you must ensure that the-
228 object has resolved the function pointers to the OpenGL functions. This-
229 only needs to be done once per instance with initializeOpenGLFunctions().-
230 Once initialized, the object can be used to call any OpenGL function for-
231 the corresponding version and profile. Note that initializeOpenGLFunctions()-
232 can fail in some circumstances so check the return value. Situations in-
233 which initialization can fail are if you have a functions object for a version-
234 or profile that contains functions that are not part of the context being-
235 used to resolve the function pointers.-
236-
237 If you exclusively use function objects then you will get compile time-
238 errors if you attempt to use a function not included in that version and-
239 profile. This is obviously a lot easier to debug than undefined behavior-
240 at run time.-
241-
242 \sa QOpenGLContext::versionFunctions()-
243*/-
244/*!-
245 Constructs a QAbstractOpenGLFunctions object.-
246*/-
247QAbstractOpenGLFunctions::QAbstractOpenGLFunctions()-
248 : d_ptr(new QAbstractOpenGLFunctionsPrivate)-
249{-
250}
never executed: end of block
0
251-
252/*!-
253 Destroys a QAbstractOpenGLFunctions object.-
254*/-
255QAbstractOpenGLFunctions::~QAbstractOpenGLFunctions()-
256{-
257 Q_D(QAbstractOpenGLFunctions);-
258 if (d->owningContext)
d->owningContextDescription
TRUEnever evaluated
FALSEnever evaluated
0
259 d->removeExternalFunctions(d->owningContext, this);
never executed: d->removeExternalFunctions(d->owningContext, this);
0
260 delete d_ptr;-
261}
never executed: end of block
0
262-
263/*! \internal-
264 */-
265bool QAbstractOpenGLFunctions::initializeOpenGLFunctions()-
266{-
267 Q_D(QAbstractOpenGLFunctions);-
268 d->initialized = true;-
269-
270 // For a subclass whose instance is not created via-
271 // QOpenGLContext::versionFunctions() owningContext is not set. Set it now-
272 // and register such instances to the context as external ones. These are-
273 // not owned by the context but still need certain cleanup when the context-
274 // is destroyed.-
275 if (!d->owningContext) {
!d->owningContextDescription
TRUEnever evaluated
FALSEnever evaluated
0
276 d->owningContext = QOpenGLContext::currentContext();-
277 if (d->owningContext)
d->owningContextDescription
TRUEnever evaluated
FALSEnever evaluated
0
278 d->insertExternalFunctions(d->owningContext, this);
never executed: d->insertExternalFunctions(d->owningContext, this);
0
279 }
never executed: end of block
0
280-
281 return true;
never executed: return true;
0
282}-
283-
284/*! \internal-
285 */-
286bool QAbstractOpenGLFunctions::isInitialized() const-
287{-
288 Q_D(const QAbstractOpenGLFunctions);-
289 return d->initialized;
never executed: return d->initialized;
0
290}-
291-
292/*! \internal-
293 */-
294void QAbstractOpenGLFunctions::setOwningContext(const QOpenGLContext *context)-
295{-
296 Q_D(QAbstractOpenGLFunctions);-
297 d->owningContext = const_cast<QOpenGLContext*>(context);-
298}
never executed: end of block
0
299-
300/*! \internal-
301 */-
302QOpenGLContext *QAbstractOpenGLFunctions::owningContext() const-
303{-
304 Q_D(const QAbstractOpenGLFunctions);-
305 return d->owningContext;
never executed: return d->owningContext;
0
306}-
307-
308#if !defined(QT_OPENGL_ES_2)-
309-
310QT_OPENGL_IMPLEMENT(QOpenGLFunctions_1_0_CoreBackend, QT_OPENGL_1_0_FUNCTIONS)
never executed: end of block
never executed: end of block
i < +1 +1 +1 +...+1 +1 +1 +1 +1Description
TRUEnever evaluated
FALSEnever evaluated
0
311QT_OPENGL_IMPLEMENT(QOpenGLFunctions_1_1_CoreBackend, QT_OPENGL_1_1_FUNCTIONS)
never executed: end of block
never executed: end of block
i < +1 +1 +1 +...+1 +1 +1 +1 +1Description
TRUEnever evaluated
FALSEnever evaluated
0
312-
313QT_OPENGL_IMPLEMENT(QOpenGLFunctions_1_2_CoreBackend, QT_OPENGL_1_2_FUNCTIONS)
never executed: end of block
never executed: end of block
i < +1 +1 +1 +1 +1 +1Description
TRUEnever evaluated
FALSEnever evaluated
0
314QT_OPENGL_IMPLEMENT(QOpenGLFunctions_1_3_CoreBackend, QT_OPENGL_1_3_FUNCTIONS)
never executed: end of block
never executed: end of block
i < +1 +1 +1 +1 +1 +1 +1 +1 +1Description
TRUEnever evaluated
FALSEnever evaluated
0
315QT_OPENGL_IMPLEMENT(QOpenGLFunctions_1_4_CoreBackend, QT_OPENGL_1_4_FUNCTIONS)
never executed: end of block
never executed: end of block
i < +1 +1 +1 +1 +1 +1 +1Description
TRUEnever evaluated
FALSEnever evaluated
0
316QT_OPENGL_IMPLEMENT(QOpenGLFunctions_1_5_CoreBackend, QT_OPENGL_1_5_FUNCTIONS)
never executed: end of block
never executed: end of block
i < +1 +1 +1 +...+1 +1 +1 +1 +1Description
TRUEnever evaluated
FALSEnever evaluated
0
317QT_OPENGL_IMPLEMENT(QOpenGLFunctions_2_0_CoreBackend, QT_OPENGL_2_0_FUNCTIONS)
never executed: end of block
never executed: end of block
i < +1 +1 +1 +...+1 +1 +1 +1 +1Description
TRUEnever evaluated
FALSEnever evaluated
0
318QT_OPENGL_IMPLEMENT(QOpenGLFunctions_2_1_CoreBackend, QT_OPENGL_2_1_FUNCTIONS)
never executed: end of block
never executed: end of block
i < +1 +1 +1 +1 +1 +1Description
TRUEnever evaluated
FALSEnever evaluated
0
319QT_OPENGL_IMPLEMENT(QOpenGLFunctions_3_0_CoreBackend, QT_OPENGL_3_0_FUNCTIONS)
never executed: end of block
never executed: end of block
i < +1 +1 +1 +...+1 +1 +1 +1 +1Description
TRUEnever evaluated
FALSEnever evaluated
0
320QT_OPENGL_IMPLEMENT(QOpenGLFunctions_3_1_CoreBackend, QT_OPENGL_3_1_FUNCTIONS)
never executed: end of block
never executed: end of block
i < +1 +1 +1 +...+1 +1 +1 +1 +1Description
TRUEnever evaluated
FALSEnever evaluated
0
321QT_OPENGL_IMPLEMENT(QOpenGLFunctions_3_2_CoreBackend, QT_OPENGL_3_2_FUNCTIONS)
never executed: end of block
never executed: end of block
i < +1 +1 +1 +...+1 +1 +1 +1 +1Description
TRUEnever evaluated
FALSEnever evaluated
0
322QT_OPENGL_IMPLEMENT(QOpenGLFunctions_3_3_CoreBackend, QT_OPENGL_3_3_FUNCTIONS)
never executed: end of block
never executed: end of block
i < +1 +1 +1 +...+1 +1 +1 +1 +1Description
TRUEnever evaluated
FALSEnever evaluated
0
323QT_OPENGL_IMPLEMENT(QOpenGLFunctions_4_0_CoreBackend, QT_OPENGL_4_0_FUNCTIONS)
never executed: end of block
never executed: end of block
i < +1 +1 +1 +...+1 +1 +1 +1 +1Description
TRUEnever evaluated
FALSEnever evaluated
0
324QT_OPENGL_IMPLEMENT(QOpenGLFunctions_4_1_CoreBackend, QT_OPENGL_4_1_FUNCTIONS)
never executed: end of block
never executed: end of block
i < +1 +1 +1 +...+1 +1 +1 +1 +1Description
TRUEnever evaluated
FALSEnever evaluated
0
325QT_OPENGL_IMPLEMENT(QOpenGLFunctions_4_2_CoreBackend, QT_OPENGL_4_2_FUNCTIONS)
never executed: end of block
never executed: end of block
i < +1 +1 +1 +...+1 +1 +1 +1 +1Description
TRUEnever evaluated
FALSEnever evaluated
0
326QT_OPENGL_IMPLEMENT(QOpenGLFunctions_4_3_CoreBackend, QT_OPENGL_4_3_FUNCTIONS)
never executed: end of block
never executed: end of block
i < +1 +1 +1 +...+1 +1 +1 +1 +1Description
TRUEnever evaluated
FALSEnever evaluated
0
327QT_OPENGL_IMPLEMENT(QOpenGLFunctions_4_4_CoreBackend, QT_OPENGL_4_4_FUNCTIONS)
never executed: end of block
never executed: end of block
i < +1 +1 +1 +1 +1 +1 +1 +1 +1Description
TRUEnever evaluated
FALSEnever evaluated
0
328QT_OPENGL_IMPLEMENT(QOpenGLFunctions_4_5_CoreBackend, QT_OPENGL_4_5_FUNCTIONS)
never executed: end of block
never executed: end of block
i < +1 +1 +1 +...+1 +1 +1 +1 +1Description
TRUEnever evaluated
FALSEnever evaluated
0
329-
330QT_OPENGL_IMPLEMENT(QOpenGLFunctions_1_0_DeprecatedBackend, QT_OPENGL_1_0_DEPRECATED_FUNCTIONS)
never executed: end of block
never executed: end of block
i < +1 +1 +1 +...+1 +1 +1 +1 +1Description
TRUEnever evaluated
FALSEnever evaluated
0
331QT_OPENGL_IMPLEMENT(QOpenGLFunctions_1_1_DeprecatedBackend, QT_OPENGL_1_1_DEPRECATED_FUNCTIONS)
never executed: end of block
never executed: end of block
i < +1 +1 +1 +...+1 +1 +1 +1 +1Description
TRUEnever evaluated
FALSEnever evaluated
0
332-
333QT_OPENGL_IMPLEMENT(QOpenGLFunctions_1_2_DeprecatedBackend, QT_OPENGL_1_2_DEPRECATED_FUNCTIONS)
never executed: end of block
never executed: end of block
i < +1 +1 +1 +...+1 +1 +1 +1 +1Description
TRUEnever evaluated
FALSEnever evaluated
0
334QT_OPENGL_IMPLEMENT(QOpenGLFunctions_1_3_DeprecatedBackend, QT_OPENGL_1_3_DEPRECATED_FUNCTIONS)
never executed: end of block
never executed: end of block
i < +1 +1 +1 +...+1 +1 +1 +1 +1Description
TRUEnever evaluated
FALSEnever evaluated
0
335QT_OPENGL_IMPLEMENT(QOpenGLFunctions_1_4_DeprecatedBackend, QT_OPENGL_1_4_DEPRECATED_FUNCTIONS)
never executed: end of block
never executed: end of block
i < +1 +1 +1 +...+1 +1 +1 +1 +1Description
TRUEnever evaluated
FALSEnever evaluated
0
336QT_OPENGL_IMPLEMENT(QOpenGLFunctions_2_0_DeprecatedBackend, QT_OPENGL_2_0_DEPRECATED_FUNCTIONS)
never executed: end of block
never executed: end of block
i < +1 +1 +1 +...+1 +1 +1 +1 +1Description
TRUEnever evaluated
FALSEnever evaluated
0
337QT_OPENGL_IMPLEMENT(QOpenGLFunctions_3_0_DeprecatedBackend, QT_OPENGL_3_0_DEPRECATED_FUNCTIONS)
never executed: end of block
never executed: end of block
i < +1 +1 +1 +...+1 +1 +1 +1 +1Description
TRUEnever evaluated
FALSEnever evaluated
0
338QT_OPENGL_IMPLEMENT(QOpenGLFunctions_3_3_DeprecatedBackend, QT_OPENGL_3_3_DEPRECATED_FUNCTIONS)
never executed: end of block
never executed: end of block
i < +1 +1 +1 +...+1 +1 +1 +1 +1Description
TRUEnever evaluated
FALSEnever evaluated
0
339QT_OPENGL_IMPLEMENT(QOpenGLFunctions_4_5_DeprecatedBackend, QT_OPENGL_4_5_DEPRECATED_FUNCTIONS)
never executed: end of block
never executed: end of block
i < +1 +1 +1 +...+1 +1 +1 +1 +1Description
TRUEnever evaluated
FALSEnever evaluated
0
340-
341#else-
342-
343// No backends for OpenGL ES 2-
344-
345#endif // !QT_OPENGL_ES_2-
346-
347QT_END_NAMESPACE-
Source codeSwitch to Preprocessed file

Generated by Squish Coco Non-Commercial 4.3.0-BETA-master-30-08-2018-4cb69e9