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_0.h"
15#include "qopenglcontext.h"
16
17QT_BEGIN_NAMESPACE
18
19/*!
20 \class QOpenGLFunctions_1_0
21 \inmodule QtOpenGL
22 \since 5.1
23 \wrapper
24 \brief The QOpenGLFunctions_1_0 class provides all functions for OpenGL 1.0 specification.
25
26 This class is a wrapper for functions from OpenGL 1.0 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_0::QOpenGLFunctions_1_0()
34 : QAbstractOpenGLFunctions()
35 , d_1_0_Core(nullptr)
36 , d_1_0_Deprecated(nullptr)
37{
38}
39
40QOpenGLFunctions_1_0::~QOpenGLFunctions_1_0()
41{
42 if (d_1_0_Core) {
43 d_1_0_Core->refs.deref();
44 Q_ASSERT(d_1_0_Core->refs.loadRelaxed());
45 }
46 if (d_1_0_Deprecated) {
47 d_1_0_Deprecated->refs.deref();
48 Q_ASSERT(d_1_0_Deprecated->refs.loadRelaxed());
49 }
50}
51
52bool QOpenGLFunctions_1_0::initializeOpenGLFunctions()
53{
54 if ( isInitialized() )
55 return true;
56
57 QOpenGLContext* context = QOpenGLContext::currentContext();
58
59 // If owned by a context object make sure it is current.
60 // Also check that current context is capable of resolving all needed functions
61 if (((owningContext() && owningContext() == context) || !owningContext())
62 && QOpenGLFunctions_1_0::isContextCompatible(context))
63 {
64 // Associate with private implementation, creating if necessary
65 // Function pointers in the backends are resolved at creation time
66 QOpenGLVersionFunctionsBackend* d = nullptr;
67 d = QAbstractOpenGLFunctionsPrivate::functionsBackend(context, v: QOpenGLFunctions_1_0_CoreBackend::versionStatus());
68 d_1_0_Core = static_cast<QOpenGLFunctions_1_0_CoreBackend*>(d);
69 d->refs.ref();
70
71 d = QAbstractOpenGLFunctionsPrivate::functionsBackend(context, v: QOpenGLFunctions_1_0_DeprecatedBackend::versionStatus());
72 d_1_0_Deprecated = static_cast<QOpenGLFunctions_1_0_DeprecatedBackend*>(d);
73 d->refs.ref();
74
75 QAbstractOpenGLFunctions::initializeOpenGLFunctions();
76 }
77 return isInitialized();
78}
79
80bool QOpenGLFunctions_1_0::isContextCompatible(QOpenGLContext *context)
81{
82 Q_ASSERT(context);
83 QSurfaceFormat f = context->format();
84 const QPair<int, int> v = qMakePair(value1: f.majorVersion(), value2: f.minorVersion());
85 if (v < qMakePair(value1: 1, value2: 0))
86 return false;
87
88 if (f.profile() == QSurfaceFormat::CoreProfile)
89 return false;
90
91 return true;
92}
93
94QOpenGLVersionProfile QOpenGLFunctions_1_0::versionProfile()
95{
96 QOpenGLVersionProfile v;
97 v.setVersion(majorVersion: 1, minorVersion: 0);
98 return v;
99}
100
101QT_END_NAMESPACE
102

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