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_2_0.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_1_0_Deprecated(nullptr)
43 , d_1_1_Deprecated(nullptr)
44 , d_1_2_Deprecated(nullptr)
45 , d_1_3_Deprecated(nullptr)
46 , d_1_4_Deprecated(nullptr)
47{
48}
49
51{
52 if (d_1_0_Core) {
53 d_1_0_Core->refs.deref();
54 Q_ASSERT(d_1_0_Core->refs.loadRelaxed());
55 }
56 if (d_1_1_Core) {
57 d_1_1_Core->refs.deref();
58 Q_ASSERT(d_1_1_Core->refs.loadRelaxed());
59 }
60 if (d_1_2_Core) {
61 d_1_2_Core->refs.deref();
62 Q_ASSERT(d_1_2_Core->refs.loadRelaxed());
63 }
64 if (d_1_3_Core) {
65 d_1_3_Core->refs.deref();
66 Q_ASSERT(d_1_3_Core->refs.loadRelaxed());
67 }
68 if (d_1_4_Core) {
69 d_1_4_Core->refs.deref();
70 Q_ASSERT(d_1_4_Core->refs.loadRelaxed());
71 }
72 if (d_1_5_Core) {
73 d_1_5_Core->refs.deref();
74 Q_ASSERT(d_1_5_Core->refs.loadRelaxed());
75 }
76 if (d_2_0_Core) {
77 d_2_0_Core->refs.deref();
78 Q_ASSERT(d_2_0_Core->refs.loadRelaxed());
79 }
80 if (d_1_0_Deprecated) {
81 d_1_0_Deprecated->refs.deref();
82 Q_ASSERT(d_1_0_Deprecated->refs.loadRelaxed());
83 }
84 if (d_1_1_Deprecated) {
85 d_1_1_Deprecated->refs.deref();
86 Q_ASSERT(d_1_1_Deprecated->refs.loadRelaxed());
87 }
88 if (d_1_2_Deprecated) {
89 d_1_2_Deprecated->refs.deref();
90 Q_ASSERT(d_1_2_Deprecated->refs.loadRelaxed());
91 }
92 if (d_1_3_Deprecated) {
93 d_1_3_Deprecated->refs.deref();
94 Q_ASSERT(d_1_3_Deprecated->refs.loadRelaxed());
95 }
96 if (d_1_4_Deprecated) {
97 d_1_4_Deprecated->refs.deref();
98 Q_ASSERT(d_1_4_Deprecated->refs.loadRelaxed());
99 }
100}
101
103{
104 if ( isInitialized() )
105 return true;
106
108
109 // If owned by a context object make sure it is current.
110 // Also check that current context is capable of resolving all needed functions
111 if (((owningContext() && owningContext() == context) || !owningContext())
112 && QOpenGLFunctions_2_0::isContextCompatible(context))
113 {
114 // Associate with private implementation, creating if necessary
115 // Function pointers in the backends are resolved at creation time
118 d_1_0_Core = static_cast<QOpenGLFunctions_1_0_CoreBackend*>(d);
119 d->refs.ref();
120
122 d_1_1_Core = static_cast<QOpenGLFunctions_1_1_CoreBackend*>(d);
123 d->refs.ref();
124
126 d_1_2_Core = static_cast<QOpenGLFunctions_1_2_CoreBackend*>(d);
127 d->refs.ref();
128
130 d_1_3_Core = static_cast<QOpenGLFunctions_1_3_CoreBackend*>(d);
131 d->refs.ref();
132
134 d_1_4_Core = static_cast<QOpenGLFunctions_1_4_CoreBackend*>(d);
135 d->refs.ref();
136
138 d_1_5_Core = static_cast<QOpenGLFunctions_1_5_CoreBackend*>(d);
139 d->refs.ref();
140
142 d_2_0_Core = static_cast<QOpenGLFunctions_2_0_CoreBackend*>(d);
143 d->refs.ref();
144
146 d_1_0_Deprecated = static_cast<QOpenGLFunctions_1_0_DeprecatedBackend*>(d);
147 d->refs.ref();
148
150 d_1_1_Deprecated = static_cast<QOpenGLFunctions_1_1_DeprecatedBackend*>(d);
151 d->refs.ref();
152
154 d_1_2_Deprecated = static_cast<QOpenGLFunctions_1_2_DeprecatedBackend*>(d);
155 d->refs.ref();
156
158 d_1_3_Deprecated = static_cast<QOpenGLFunctions_1_3_DeprecatedBackend*>(d);
159 d->refs.ref();
160
162 d_1_4_Deprecated = static_cast<QOpenGLFunctions_1_4_DeprecatedBackend*>(d);
163 d->refs.ref();
164
166 }
167 return isInitialized();
168}
169
170bool QOpenGLFunctions_2_0::isContextCompatible(QOpenGLContext *context)
171{
173 QSurfaceFormat f = context->format();
174 const QPair<int, int> v = qMakePair(f.majorVersion(), f.minorVersion());
175 if (v < qMakePair(2, 0))
176 return false;
177
178 if (f.profile() == QSurfaceFormat::CoreProfile)
179 return false;
180
181 return true;
182}
183
184QOpenGLVersionProfile QOpenGLFunctions_2_0::versionProfile()
185{
187 v.setVersion(2, 0);
188 return v;
189}
190
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()
bool initializeOpenGLFunctions() override
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