File indexing completed on 2024-05-12 05:31:41
0001 /* 0002 KWin - the KDE window manager 0003 This file is part of the KDE project. 0004 0005 SPDX-FileCopyrightText: 2021 Xaver Hugl <xaver.hugl@gmail.com> 0006 0007 SPDX-License-Identifier: GPL-2.0-or-later 0008 */ 0009 #pragma once 0010 0011 #include <QOpenGLContext> 0012 #include <QString> 0013 #include <epoxy/egl.h> 0014 0015 static inline QString getEglErrorString(EGLint errorCode) 0016 { 0017 switch (errorCode) { 0018 case EGL_SUCCESS: 0019 return QStringLiteral("EGL_SUCCESS"); 0020 case EGL_NOT_INITIALIZED: 0021 return QStringLiteral("EGL_NOT_INITIALIZED"); 0022 case EGL_BAD_ACCESS: 0023 return QStringLiteral("EGL_BAD_ACCESS"); 0024 case EGL_BAD_ALLOC: 0025 return QStringLiteral("EGL_BAD_ALLOC"); 0026 case EGL_BAD_ATTRIBUTE: 0027 return QStringLiteral("EGL_BAD_ATTRIBUTE"); 0028 case EGL_BAD_CONTEXT: 0029 return QStringLiteral("EGL_BAD_CONTEXT"); 0030 case EGL_BAD_CONFIG: 0031 return QStringLiteral("EGL_BAD_CONFIG"); 0032 case EGL_BAD_CURRENT_SURFACE: 0033 return QStringLiteral("EGL_BAD_CURRENT_SURFACE"); 0034 case EGL_BAD_DISPLAY: 0035 return QStringLiteral("EGL_BAD_DISPLAY"); 0036 case EGL_BAD_SURFACE: 0037 return QStringLiteral("EGL_BAD_SURFACE"); 0038 case EGL_BAD_MATCH: 0039 return QStringLiteral("EGL_BAD_MATCH"); 0040 case EGL_BAD_PARAMETER: 0041 return QStringLiteral("EGL_BAD_PARAMETER"); 0042 case EGL_BAD_NATIVE_PIXMAP: 0043 return QStringLiteral("EGL_BAD_NATIVE_PIXMAP"); 0044 case EGL_BAD_NATIVE_WINDOW: 0045 return QStringLiteral("EGL_BAD_NATIVE_WINDOW"); 0046 case EGL_CONTEXT_LOST: 0047 return QStringLiteral("EGL_CONTEXT_LOST"); 0048 default: 0049 return QString::number(errorCode, 16); 0050 } 0051 } 0052 0053 static inline QString getEglErrorString() 0054 { 0055 return getEglErrorString(eglGetError()); 0056 } 0057 0058 static inline bool isOpenGLES() 0059 { 0060 if (qstrcmp(qgetenv("KWIN_COMPOSE"), "O2ES") == 0) { 0061 return true; 0062 } 0063 return QOpenGLContext::openGLModuleType() == QOpenGLContext::LibGLES; 0064 }