Qt on Termux doesn't have OpenGL. This dirty patch comments out all OpenGL related code so it can be compiled. However, this means the Kirigami 2 might not function completely or correctly. --- src/src/scenegraph/shadowedrectanglematerial.cpp 2021-05-19 13:40:06.865745704 +0100 +++ src.mod/src/scenegraph/shadowedrectanglematerial.cpp 2021-05-19 13:41:00.549263960 +0100 @@ -6,7 +6,9 @@ #include "shadowedrectanglematerial.h" +#ifndef __ANDROID__ #include +#endif QSGMaterialType ShadowedRectangleMaterial::staticType; @@ -43,6 +45,7 @@ ShadowedRectangleShader::ShadowedRectangleShader() { +#ifndef __ANDROID__ auto header = QOpenGLContext::currentContext()->isOpenGLES() ? QStringLiteral("header_es.glsl") : QStringLiteral("header_desktop.glsl"); auto shaderRoot = QStringLiteral(":/org/kde/kirigami/shaders/"); @@ -57,6 +60,7 @@ shaderRoot + QStringLiteral("sdf.glsl"), shaderRoot + QStringLiteral("shadowedrectangle.frag") }); +#endif } const char *const * ShadowedRectangleShader::attributeNames() const @@ -68,6 +72,7 @@ void ShadowedRectangleShader::initialize() { QSGMaterialShader::initialize(); +#ifndef __ANDROID__ m_matrixLocation = program()->uniformLocation("matrix"); m_aspectLocation = program()->uniformLocation("aspect"); m_opacityLocation = program()->uniformLocation("opacity"); @@ -76,10 +81,12 @@ m_colorLocation = program()->uniformLocation("color"); m_shadowColorLocation = program()->uniformLocation("shadowColor"); m_offsetLocation = program()->uniformLocation("offset"); +#endif } void ShadowedRectangleShader::updateState(const QSGMaterialShader::RenderState& state, QSGMaterial* newMaterial, QSGMaterial* oldMaterial) { +#ifndef __ANDROID__ auto p = program(); if (state.isMatrixDirty()) { @@ -99,4 +106,5 @@ p->setUniformValue(m_shadowColorLocation, material->shadowColor); p->setUniformValue(m_offsetLocation, material->offset); } +#endif } --- src/src/scenegraph/shadowedrectanglematerial.h 2021-05-19 13:40:06.865745704 +0100 +++ src.mod/src/scenegraph/shadowedrectanglematerial.h 2021-05-19 13:33:30.284974868 +0100 @@ -9,6 +9,7 @@ #include #include #include +#include /** * A material rendering a rectangle with a shadow. --- src/src/scenegraph/shadowedborderrectanglematerial.cpp 2020-06-07 19:29:04.000000000 +0100 +++ src.mod/src/scenegraph/shadowedborderrectanglematerial.cpp 2021-05-19 13:47:43.418072767 +0100 @@ -6,7 +6,9 @@ #include "shadowedborderrectanglematerial.h" +#ifndef __ANDROID__ #include +#endif QSGMaterialType ShadowedBorderRectangleMaterial::staticType; @@ -42,6 +44,7 @@ ShadowedBorderRectangleShader::ShadowedBorderRectangleShader() { +#ifndef __ANDROID__ auto header = QOpenGLContext::currentContext()->isOpenGLES() ? QStringLiteral("header_es.glsl") : QStringLiteral("header_desktop.glsl"); auto shaderRoot = QStringLiteral(":/org/kde/kirigami/shaders/"); @@ -51,19 +54,23 @@ shaderRoot + QStringLiteral("sdf.glsl"), shaderRoot + QStringLiteral("shadowedborderrectangle.frag") }); +#endif } void ShadowedBorderRectangleShader::initialize() { ShadowedRectangleShader::initialize(); +#ifndef __ANDROID__ m_borderWidthLocation = program()->uniformLocation("borderWidth"); m_borderColorLocation = program()->uniformLocation("borderColor"); +#endif } void ShadowedBorderRectangleShader::updateState(const QSGMaterialShader::RenderState& state, QSGMaterial* newMaterial, QSGMaterial* oldMaterial) { ShadowedRectangleShader::updateState(state, newMaterial, oldMaterial); +#ifndef __ANDROID__ auto p = program(); if (!oldMaterial || newMaterial->compare(oldMaterial) != 0 || state.isCachedMaterialDataDirty()) { @@ -71,4 +78,5 @@ p->setUniformValue(m_borderWidthLocation, material->borderWidth); p->setUniformValue(m_borderColorLocation, material->borderColor); } +#endif } --- src/src/scenegraph/shadowedtexturematerial.cpp 2020-06-07 19:29:04.000000000 +0100 +++ src.mod/src/scenegraph/shadowedtexturematerial.cpp 2021-05-19 13:50:42.636813685 +0100 @@ -6,7 +6,9 @@ #include "shadowedtexturematerial.h" +#ifndef __ANDROID__ #include +#endif QSGMaterialType ShadowedTextureMaterial::staticType; @@ -44,6 +46,7 @@ ShadowedTextureShader::ShadowedTextureShader() { +#ifndef __ANDROID__ auto header = QOpenGLContext::currentContext()->isOpenGLES() ? QStringLiteral("header_es.glsl") : QStringLiteral("header_desktop.glsl"); auto shaderRoot = QStringLiteral(":/org/kde/kirigami/shaders/"); @@ -58,12 +61,15 @@ shaderRoot + QStringLiteral("sdf.glsl"), shaderRoot + QStringLiteral("shadowedtexture.frag") }); +#endif } void ShadowedTextureShader::initialize() { ShadowedRectangleShader::initialize(); +#ifndef __ANDROID__ program()->setUniformValue("textureSource", 0); +#endif } void ShadowedTextureShader::updateState(const QSGMaterialShader::RenderState& state, QSGMaterial* newMaterial, QSGMaterial* oldMaterial) --- src/src/scenegraph/shadowedbordertexturematerial.cpp 2020-06-07 19:29:04.000000000 +0100 +++ src.mod/src/scenegraph/shadowedbordertexturematerial.cpp 2021-05-19 13:52:35.692051057 +0100 @@ -6,7 +6,9 @@ #include "shadowedbordertexturematerial.h" +#ifndef __ANDROID__ #include +#endif QSGMaterialType ShadowedBorderTextureMaterial::staticType; @@ -44,6 +46,7 @@ ShadowedBorderTextureShader::ShadowedBorderTextureShader() { +#ifndef __ANDROID__ auto header = QOpenGLContext::currentContext()->isOpenGLES() ? QStringLiteral("header_es.glsl") : QStringLiteral("header_desktop.glsl"); auto shaderRoot = QStringLiteral(":/org/kde/kirigami/shaders/"); @@ -58,12 +61,15 @@ shaderRoot + QStringLiteral("sdf.glsl"), shaderRoot + QStringLiteral("shadowedbordertexture.frag") }); +#endif } void ShadowedBorderTextureShader::initialize() { ShadowedBorderRectangleShader::initialize(); +#ifndef __ANDROID__ program()->setUniformValue("textureSource", 0); +#endif } void ShadowedBorderTextureShader::updateState(const QSGMaterialShader::RenderState& state, QSGMaterial* newMaterial, QSGMaterial* oldMaterial)