summaryrefslogtreecommitdiffstats
path: root/src/extras/defaults/qphongmaterial.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/extras/defaults/qphongmaterial.cpp')
-rw-r--r--src/extras/defaults/qphongmaterial.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/extras/defaults/qphongmaterial.cpp b/src/extras/defaults/qphongmaterial.cpp
index 6318ea140..460bc9bb2 100644
--- a/src/extras/defaults/qphongmaterial.cpp
+++ b/src/extras/defaults/qphongmaterial.cpp
@@ -70,13 +70,17 @@ QPhongMaterialPrivate::QPhongMaterialPrivate()
, m_phongGL3Technique(new QTechnique())
, m_phongGL2Technique(new QTechnique())
, m_phongES2Technique(new QTechnique())
+ , m_phongRHITechnique(new QTechnique())
, m_phongGL3RenderPass(new QRenderPass())
, m_phongGL2RenderPass(new QRenderPass())
, m_phongES2RenderPass(new QRenderPass())
+ , m_phongRHIRenderPass(new QRenderPass())
, m_phongGL3Shader(new QShaderProgram())
, m_phongGL3ShaderBuilder(new QShaderProgramBuilder())
, m_phongGL2ES2Shader(new QShaderProgram())
, m_phongGL2ES2ShaderBuilder(new QShaderProgramBuilder())
+ , m_phongRHIShader(new QShaderProgram())
+ , m_phongRHIShaderBuilder(new QShaderProgramBuilder())
, m_filterKey(new QFilterKey)
{
}
@@ -110,6 +114,14 @@ void QPhongMaterialPrivate::init()
QStringLiteral("specular"),
QStringLiteral("normal")});
+ m_phongRHIShader->setVertexShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/rhi/default.vert"))));
+ m_phongRHIShaderBuilder->setParent(q);
+ m_phongRHIShaderBuilder->setShaderProgram(m_phongRHIShader);
+ m_phongRHIShaderBuilder->setFragmentShaderGraph(QUrl(QStringLiteral("qrc:/shaders/graphs/phong.frag.json")));
+ m_phongRHIShaderBuilder->setEnabledLayers({QStringLiteral("diffuse"),
+ QStringLiteral("specular"),
+ QStringLiteral("normal")});
+
m_phongGL3Technique->graphicsApiFilter()->setApi(QGraphicsApiFilter::OpenGL);
m_phongGL3Technique->graphicsApiFilter()->setMajorVersion(3);
m_phongGL3Technique->graphicsApiFilter()->setMinorVersion(1);
@@ -125,13 +137,19 @@ void QPhongMaterialPrivate::init()
m_phongES2Technique->graphicsApiFilter()->setMinorVersion(0);
m_phongES2Technique->graphicsApiFilter()->setProfile(QGraphicsApiFilter::NoProfile);
+ m_phongRHITechnique->graphicsApiFilter()->setApi(QGraphicsApiFilter::RHI);
+ m_phongRHITechnique->graphicsApiFilter()->setMajorVersion(1);
+ m_phongRHITechnique->graphicsApiFilter()->setMinorVersion(0);
+
m_phongGL3RenderPass->setShaderProgram(m_phongGL3Shader);
m_phongGL2RenderPass->setShaderProgram(m_phongGL2ES2Shader);
m_phongES2RenderPass->setShaderProgram(m_phongGL2ES2Shader);
+ m_phongRHIRenderPass->setShaderProgram(m_phongRHIShader);
m_phongGL3Technique->addRenderPass(m_phongGL3RenderPass);
m_phongGL2Technique->addRenderPass(m_phongGL2RenderPass);
m_phongES2Technique->addRenderPass(m_phongES2RenderPass);
+ m_phongRHITechnique->addRenderPass(m_phongRHIRenderPass);
m_filterKey->setParent(q);
m_filterKey->setName(QStringLiteral("renderingStyle"));
@@ -140,10 +158,12 @@ void QPhongMaterialPrivate::init()
m_phongGL3Technique->addFilterKey(m_filterKey);
m_phongGL2Technique->addFilterKey(m_filterKey);
m_phongES2Technique->addFilterKey(m_filterKey);
+ m_phongRHITechnique->addFilterKey(m_filterKey);
m_phongEffect->addTechnique(m_phongGL3Technique);
m_phongEffect->addTechnique(m_phongGL2Technique);
m_phongEffect->addTechnique(m_phongES2Technique);
+ m_phongEffect->addTechnique(m_phongRHITechnique);
m_phongEffect->addParameter(m_ambientParameter);
m_phongEffect->addParameter(m_diffuseParameter);