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
14#include "qopenglfunctions_1_2.h"
15#include "qopenglcontext.h"
16
17QT_BEGIN_NAMESPACE
18
19/*!
20 \class QOpenGLFunctions_1_2
21 \inmodule QtOpenGL
22 \since 5.1
23 \wrapper
24 \brief The QOpenGLFunctions_1_2 class provides all functions for OpenGL 1.2 specification.
25
26 This class is a wrapper for functions from OpenGL 1.2 specification.
27 See reference pages on \l {http://www.opengl.org/sdk/docs/}{opengl.org}
28 for function documentation.
29
30 \sa QAbstractOpenGLFunctions
31*/
32
33QOpenGLFunctions_1_2::QOpenGLFunctions_1_2()
34 : QAbstractOpenGLFunctions()
35 , d_1_0_Core(nullptr)
36 , d_1_1_Core(nullptr)
37 , d_1_2_Core(nullptr)
38 , d_1_0_Deprecated(nullptr)
39 , d_1_1_Deprecated(nullptr)
40 , d_1_2_Deprecated(nullptr)
41{
42}
43
44QOpenGLFunctions_1_2::~QOpenGLFunctions_1_2()
45{
46 if (d_1_0_Core) {
47 d_1_0_Core->refs.deref();
48 Q_ASSERT(d_1_0_Core->refs.loadRelaxed());
49 }
50 if (d_1_1_Core) {
51 d_1_1_Core->refs.deref();
52 Q_ASSERT(d_1_1_Core->refs.loadRelaxed());
53 }
54 if (d_1_2_Core) {
55 d_1_2_Core->refs.deref();
56 Q_ASSERT(d_1_2_Core->refs.loadRelaxed());
57 }
58 if (d_1_0_Deprecated) {
59 d_1_0_Deprecated->refs.deref();
60 Q_ASSERT(d_1_0_Deprecated->refs.loadRelaxed());
61 }
62 if (d_1_1_Deprecated) {
63 d_1_1_Deprecated->refs.deref();
64 Q_ASSERT(d_1_1_Deprecated->refs.loadRelaxed());
65 }
66 if (d_1_2_Deprecated) {
67 d_1_2_Deprecated->refs.deref();
68 Q_ASSERT(d_1_2_Deprecated->refs.loadRelaxed());
69 }
70}
71
72bool QOpenGLFunctions_1_2::initializeOpenGLFunctions()
73{
74 if ( isInitialized() )
75 return true;
76
77 QOpenGLContext* context = QOpenGLContext::currentContext();
78
79 // If owned by a context object make sure it is current.
80 // Also check that current context is capable of resolving all needed functions
81 if (((owningContext() && owningContext() == context) || !owningContext())
82 && QOpenGLFunctions_1_2::isContextCompatible(context))
83 {
84 // Associate with private implementation, creating if necessary
85 // Function pointers in the backends are resolved at creation time
86 QOpenGLVersionFunctionsBackend* d = nullptr;
87 d = QAbstractOpenGLFunctionsPrivate::functionsBackend(context, v: QOpenGLFunctions_1_0_CoreBackend::versionStatus());
88 d_1_0_Core = static_cast<QOpenGLFunctions_1_0_CoreBackend*>(d);
89 d->refs.ref();
90
91 d = QAbstractOpenGLFunctionsPrivate::functionsBackend(context, v: QOpenGLFunctions_1_1_CoreBackend::versionStatus());
92 d_1_1_Core = static_cast<QOpenGLFunctions_1_1_CoreBackend*>(d);
93 d->refs.ref();
94
95 d = QAbstractOpenGLFunctionsPrivate::functionsBackend(context, v: QOpenGLFunctions_1_2_CoreBackend::versionStatus());
96 d_1_2_Core = static_cast<QOpenGLFunctions_1_2_CoreBackend*>(d);
97 d->refs.ref();
98
99 d = QAbstractOpenGLFunctionsPrivate::functionsBackend(context, v: QOpenGLFunctions_1_0_DeprecatedBackend::versionStatus());
100 d_1_0_Deprecated = static_cast<QOpenGLFunctions_1_0_DeprecatedBackend*>(d);
101 d->refs.ref();
102
103 d = QAbstractOpenGLFunctionsPrivate::functionsBackend(context, v: QOpenGLFunctions_1_1_DeprecatedBackend::versionStatus());
104 d_1_1_Deprecated = static_cast<QOpenGLFunctions_1_1_DeprecatedBackend*>(d);
105 d->refs.ref();
106
107 d = QAbstractOpenGLFunctionsPrivate::functionsBackend(context, v: QOpenGLFunctions_1_2_DeprecatedBackend::versionStatus());
108 d_1_2_Deprecated = static_cast<QOpenGLFunctions_1_2_DeprecatedBackend*>(d);
109 d->refs.ref();
110
111 QAbstractOpenGLFunctions::initializeOpenGLFunctions();
112 }
113 return isInitialized();
114}
115
116bool QOpenGLFunctions_1_2::isContextCompatible(QOpenGLContext *context)
117{
118 Q_ASSERT(context);
119 QSurfaceFormat f = context->format();
120 const QPair<int, int> v = qMakePair(value1: f.majorVersion(), value2: f.minorVersion());
121 if (v < qMakePair(value1: 1, value2: 2))
122 return false;
123
124 if (f.profile() == QSurfaceFormat::CoreProfile)
125 return false;
126
127 return true;
128}
129
130QOpenGLVersionProfile QOpenGLFunctions_1_2::versionProfile()
131{
132 QOpenGLVersionProfile v;
133 v.setVersion(majorVersion: 1, minorVersion: 2);
134 return v;
135}
136
137QT_END_NAMESPACE
138

source code of qtbase/src/opengl/qopenglfunctions_1_2.cpp