summaryrefslogtreecommitdiffstats
path: root/src/extras/defaults/qgoochmaterial.cpp
diff options
context:
space:
mode:
authorJean-Michaël Celerier <jean-michael.celerier@kdab.com>2020-03-17 16:07:38 +0100
committerJean-Michaël Celerier <jean-michael.celerier@kdab.com>2020-04-22 09:36:46 +0200
commitdf4ec04dae8c0ce9fa3b27bc8e48eb2d36a20962 (patch)
tree723fe393774b3f697bd9bc5d87a41220b377953c /src/extras/defaults/qgoochmaterial.cpp
parenta01dbe5b0e1b912c7210abc304700020e685aff0 (diff)
rhi: Port most of Qt3DExtras materials to RHI
Change-Id: Iba20f047404b20c1e5b9bdcef917b3c2a1000d59 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Diffstat (limited to 'src/extras/defaults/qgoochmaterial.cpp')
-rw-r--r--src/extras/defaults/qgoochmaterial.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/extras/defaults/qgoochmaterial.cpp b/src/extras/defaults/qgoochmaterial.cpp
index 57ec359b3..b5665d776 100644
--- a/src/extras/defaults/qgoochmaterial.cpp
+++ b/src/extras/defaults/qgoochmaterial.cpp
@@ -65,11 +65,14 @@ QGoochMaterialPrivate::QGoochMaterialPrivate()
, m_gl3Technique(new Qt3DRender::QTechnique)
, m_gl2Technique(new Qt3DRender::QTechnique)
, m_es2Technique(new Qt3DRender::QTechnique)
+ , m_rhiTechnique(new Qt3DRender::QTechnique)
, m_gl3RenderPass(new Qt3DRender::QRenderPass)
, m_gl2RenderPass(new Qt3DRender::QRenderPass)
, m_es2RenderPass(new Qt3DRender::QRenderPass)
+ , m_rhiRenderPass(new Qt3DRender::QRenderPass)
, m_gl3Shader(new Qt3DRender::QShaderProgram)
, m_gl2ES2Shader(new Qt3DRender::QShaderProgram)
+ , m_rhiShader(new Qt3DRender::QShaderProgram)
, m_filterKey(new Qt3DRender::QFilterKey)
{
}
@@ -97,6 +100,8 @@ void QGoochMaterialPrivate::init()
m_gl3Shader->setFragmentShaderCode(Qt3DRender::QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/gl3/gooch.frag"))));
m_gl2ES2Shader->setVertexShaderCode(Qt3DRender::QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/es2/gooch.vert"))));
m_gl2ES2Shader->setFragmentShaderCode(Qt3DRender::QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/es2/gooch.frag"))));
+ m_rhiShader->setVertexShaderCode(Qt3DRender::QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/rhi/gooch.vert"))));
+ m_rhiShader->setFragmentShaderCode(Qt3DRender::QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/rhi/gooch.frag"))));
m_gl3Technique->graphicsApiFilter()->setApi(Qt3DRender::QGraphicsApiFilter::OpenGL);
m_gl3Technique->graphicsApiFilter()->setMajorVersion(3);
@@ -113,6 +118,11 @@ void QGoochMaterialPrivate::init()
m_es2Technique->graphicsApiFilter()->setMinorVersion(0);
m_es2Technique->graphicsApiFilter()->setProfile(Qt3DRender::QGraphicsApiFilter::NoProfile);
+ m_rhiTechnique->graphicsApiFilter()->setApi(Qt3DRender::QGraphicsApiFilter::RHI);
+ m_rhiTechnique->graphicsApiFilter()->setMajorVersion(1);
+ m_rhiTechnique->graphicsApiFilter()->setMinorVersion(0);
+ m_rhiTechnique->graphicsApiFilter()->setProfile(Qt3DRender::QGraphicsApiFilter::CoreProfile);
+
m_filterKey->setParent(q);
m_filterKey->setName(QStringLiteral("renderingStyle"));
m_filterKey->setValue(QStringLiteral("forward"));
@@ -120,18 +130,22 @@ void QGoochMaterialPrivate::init()
m_gl3Technique->addFilterKey(m_filterKey);
m_gl2Technique->addFilterKey(m_filterKey);
m_es2Technique->addFilterKey(m_filterKey);
+ m_rhiTechnique->addFilterKey(m_filterKey);
m_gl3RenderPass->setShaderProgram(m_gl3Shader);
m_gl2RenderPass->setShaderProgram(m_gl2ES2Shader);
m_es2RenderPass->setShaderProgram(m_gl2ES2Shader);
+ m_rhiRenderPass->setShaderProgram(m_rhiShader);
m_gl3Technique->addRenderPass(m_gl3RenderPass);
m_gl2Technique->addRenderPass(m_gl2RenderPass);
m_es2Technique->addRenderPass(m_es2RenderPass);
+ m_rhiTechnique->addRenderPass(m_rhiRenderPass);
m_effect->addTechnique(m_gl3Technique);
m_effect->addTechnique(m_gl2Technique);
m_effect->addTechnique(m_es2Technique);
+ m_effect->addTechnique(m_rhiTechnique);
m_effect->addParameter(m_diffuseParameter);
m_effect->addParameter(m_specularParameter);