KWin
Loading...
Searching...
No Matches
openglcontext.h
Go to the documentation of this file.
1/*
2 KWin - the KDE window manager
3 This file is part of the KDE project.
4
5 SPDX-FileCopyrightText: 2023 Xaver Hugl <xaver.hugl@gmail.com>
6
7 SPDX-License-Identifier: GPL-2.0-or-later
8*/
9#pragma once
10#include "kwin_export.h"
11#include "utils/version.h"
12
13#include <stdint.h>
14#include <string_view>
15
16#include <QByteArray>
17#include <QSet>
18
19namespace KWin
20{
21
22class KWIN_EXPORT OpenGlContext
23{
24public:
25 explicit OpenGlContext();
26 virtual ~OpenGlContext() = default;
27
28 bool hasVersion(const Version &version) const;
29
30 QByteArrayView openglVersionString() const;
31 Version openglVersion() const;
32 QByteArrayView vendor() const;
33 QByteArrayView renderer() const;
34 bool isOpenglES() const;
35 bool hasOpenglExtension(QByteArrayView name) const;
36 bool isSoftwareRenderer() const;
37 bool supportsTimerQueries() const;
38
42 bool checkSupported() const;
43
44protected:
45 bool checkTimerQuerySupport() const;
46
47 const QByteArrayView m_versionString;
49 const QByteArrayView m_vendor;
50 const QByteArrayView m_renderer;
51 const bool m_isOpenglES;
52 const QSet<QByteArray> m_extensions;
54};
55
56}
const bool m_isOpenglES
const Version m_version
const bool m_supportsTimerQueries
const QSet< QByteArray > m_extensions
virtual ~OpenGlContext()=default
const QByteArrayView m_vendor
const QByteArrayView m_renderer
const QByteArrayView m_versionString
constexpr int version