File indexing completed on 2024-05-05 16:16:43
0001 /* 0002 * This file is part of KQuickCharts 0003 * SPDX-FileCopyrightText: 2019 Arjen Hiemstra <ahiemstra@heimr.nl> 0004 * 0005 * SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0006 */ 0007 0008 #include "SDFShader.h" 0009 0010 #include <QOpenGLContext> 0011 #include <QSurfaceFormat> 0012 0013 static const char shaderRoot[] = ":/org.kde.quickcharts/"; 0014 0015 SDFShader::SDFShader() 0016 { 0017 } 0018 0019 SDFShader::~SDFShader() 0020 { 0021 } 0022 0023 void SDFShader::setShaders(const QString &vertex, const QString &fragment) 0024 { 0025 #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) 0026 auto header = QStringLiteral("header_desktop.glsl"); 0027 auto format = QOpenGLContext::currentContext()->format(); 0028 if (format.renderableType() == QSurfaceFormat::OpenGLES) { 0029 header = QStringLiteral("header_es2.glsl"); 0030 } 0031 0032 setShaderSourceFiles(QOpenGLShader::Vertex, {QString::fromLatin1(shaderRoot) + header, QString::fromLatin1(shaderRoot) + vertex}); 0033 0034 setShaderSourceFiles(QOpenGLShader::Fragment, 0035 {QString::fromLatin1(shaderRoot) + header, // 0036 QString::fromLatin1(shaderRoot) + QStringLiteral("sdf.glsl"), // 0037 QString::fromLatin1(shaderRoot) + fragment}); 0038 #else 0039 setShaderFileName(QSGMaterialShader::VertexStage, QLatin1String(shaderRoot) + vertex + QLatin1String(".qsb")); 0040 setShaderFileName(QSGMaterialShader::FragmentStage, QLatin1String(shaderRoot) + fragment + QLatin1String(".qsb")); 0041 #endif 0042 }