diff options
Diffstat (limited to 'src/extras/defaults')
24 files changed, 280 insertions, 1 deletions
diff --git a/src/extras/defaults/qdiffusemapmaterial.cpp b/src/extras/defaults/qdiffusemapmaterial.cpp index 83eec26a8..95ab7e9ac 100644 --- a/src/extras/defaults/qdiffusemapmaterial.cpp +++ b/src/extras/defaults/qdiffusemapmaterial.cpp @@ -72,13 +72,17 @@ QDiffuseMapMaterialPrivate::QDiffuseMapMaterialPrivate() , m_diffuseMapGL3Technique(new QTechnique()) , m_diffuseMapGL2Technique(new QTechnique()) , m_diffuseMapES2Technique(new QTechnique()) + , m_diffuseMapRHITechnique(new QTechnique()) , m_diffuseMapGL3RenderPass(new QRenderPass()) , m_diffuseMapGL2RenderPass(new QRenderPass()) , m_diffuseMapES2RenderPass(new QRenderPass()) + , m_diffuseMapRHIRenderPass(new QRenderPass()) , m_diffuseMapGL3Shader(new QShaderProgram()) , m_diffuseMapGL3ShaderBuilder(new QShaderProgramBuilder()) , m_diffuseMapGL2ES2Shader(new QShaderProgram()) , m_diffuseMapGL2ES2ShaderBuilder(new QShaderProgramBuilder()) + , m_diffuseMapRHIShader(new QShaderProgram()) + , m_diffuseMapRHIShaderBuilder(new QShaderProgramBuilder()) , m_filterKey(new QFilterKey) { m_diffuseTexture->setMagnificationFilter(QAbstractTexture::Linear); @@ -119,6 +123,14 @@ void QDiffuseMapMaterialPrivate::init() QStringLiteral("specular"), QStringLiteral("normal")}); + m_diffuseMapRHIShader->setVertexShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/rhi/default.vert")))); + m_diffuseMapRHIShaderBuilder->setParent(q); + m_diffuseMapRHIShaderBuilder->setShaderProgram(m_diffuseMapRHIShader); + m_diffuseMapRHIShaderBuilder->setFragmentShaderGraph(QUrl(QStringLiteral("qrc:/shaders/graphs/phong.frag.json"))); + m_diffuseMapRHIShaderBuilder->setEnabledLayers({QStringLiteral("diffuseTexture"), + QStringLiteral("specular"), + QStringLiteral("normal")}); + m_diffuseMapGL3Technique->graphicsApiFilter()->setApi(QGraphicsApiFilter::OpenGL); m_diffuseMapGL3Technique->graphicsApiFilter()->setMajorVersion(3); m_diffuseMapGL3Technique->graphicsApiFilter()->setMinorVersion(1); @@ -134,6 +146,10 @@ void QDiffuseMapMaterialPrivate::init() m_diffuseMapES2Technique->graphicsApiFilter()->setMinorVersion(0); m_diffuseMapES2Technique->graphicsApiFilter()->setProfile(QGraphicsApiFilter::NoProfile); + m_diffuseMapRHITechnique->graphicsApiFilter()->setApi(QGraphicsApiFilter::RHI); + m_diffuseMapRHITechnique->graphicsApiFilter()->setMajorVersion(1); + m_diffuseMapRHITechnique->graphicsApiFilter()->setMinorVersion(0); + m_filterKey->setParent(q); m_filterKey->setName(QStringLiteral("renderingStyle")); m_filterKey->setValue(QStringLiteral("forward")); @@ -141,18 +157,22 @@ void QDiffuseMapMaterialPrivate::init() m_diffuseMapGL3Technique->addFilterKey(m_filterKey); m_diffuseMapGL2Technique->addFilterKey(m_filterKey); m_diffuseMapES2Technique->addFilterKey(m_filterKey); + m_diffuseMapRHITechnique->addFilterKey(m_filterKey); m_diffuseMapGL3RenderPass->setShaderProgram(m_diffuseMapGL3Shader); m_diffuseMapGL2RenderPass->setShaderProgram(m_diffuseMapGL2ES2Shader); m_diffuseMapES2RenderPass->setShaderProgram(m_diffuseMapGL2ES2Shader); + m_diffuseMapRHIRenderPass->setShaderProgram(m_diffuseMapRHIShader); m_diffuseMapGL3Technique->addRenderPass(m_diffuseMapGL3RenderPass); m_diffuseMapGL2Technique->addRenderPass(m_diffuseMapGL2RenderPass); m_diffuseMapES2Technique->addRenderPass(m_diffuseMapES2RenderPass); + m_diffuseMapRHITechnique->addRenderPass(m_diffuseMapRHIRenderPass); m_diffuseMapEffect->addTechnique(m_diffuseMapGL3Technique); m_diffuseMapEffect->addTechnique(m_diffuseMapGL2Technique); m_diffuseMapEffect->addTechnique(m_diffuseMapES2Technique); + m_diffuseMapEffect->addTechnique(m_diffuseMapRHITechnique); m_diffuseMapEffect->addParameter(m_ambientParameter); m_diffuseMapEffect->addParameter(m_diffuseParameter); diff --git a/src/extras/defaults/qdiffusemapmaterial_p.h b/src/extras/defaults/qdiffusemapmaterial_p.h index cef75a3f0..d83e8bff0 100644 --- a/src/extras/defaults/qdiffusemapmaterial_p.h +++ b/src/extras/defaults/qdiffusemapmaterial_p.h @@ -94,13 +94,17 @@ class QDiffuseMapMaterialPrivate : public Qt3DRender::QMaterialPrivate Qt3DRender::QTechnique *m_diffuseMapGL3Technique; Qt3DRender::QTechnique *m_diffuseMapGL2Technique; Qt3DRender::QTechnique *m_diffuseMapES2Technique; + Qt3DRender::QTechnique *m_diffuseMapRHITechnique; Qt3DRender::QRenderPass *m_diffuseMapGL3RenderPass; Qt3DRender::QRenderPass *m_diffuseMapGL2RenderPass; Qt3DRender::QRenderPass *m_diffuseMapES2RenderPass; + Qt3DRender::QRenderPass *m_diffuseMapRHIRenderPass; Qt3DRender::QShaderProgram *m_diffuseMapGL3Shader; Qt3DRender::QShaderProgramBuilder *m_diffuseMapGL3ShaderBuilder; Qt3DRender::QShaderProgram *m_diffuseMapGL2ES2Shader; Qt3DRender::QShaderProgramBuilder *m_diffuseMapGL2ES2ShaderBuilder; + Qt3DRender::QShaderProgram *m_diffuseMapRHIShader; + Qt3DRender::QShaderProgramBuilder *m_diffuseMapRHIShaderBuilder; Qt3DRender::QFilterKey *m_filterKey; Q_DECLARE_PUBLIC(QDiffuseMapMaterial) diff --git a/src/extras/defaults/qdiffusespecularmapmaterial.cpp b/src/extras/defaults/qdiffusespecularmapmaterial.cpp index 9a1092fbc..15dcb36bf 100644 --- a/src/extras/defaults/qdiffusespecularmapmaterial.cpp +++ b/src/extras/defaults/qdiffusespecularmapmaterial.cpp @@ -73,13 +73,17 @@ QDiffuseSpecularMapMaterialPrivate::QDiffuseSpecularMapMaterialPrivate() , m_diffuseSpecularMapGL3Technique(new QTechnique()) , m_diffuseSpecularMapGL2Technique(new QTechnique()) , m_diffuseSpecularMapES2Technique(new QTechnique()) + , m_diffuseSpecularMapRHITechnique(new QTechnique()) , m_diffuseSpecularMapGL3RenderPass(new QRenderPass()) , m_diffuseSpecularMapGL2RenderPass(new QRenderPass()) , m_diffuseSpecularMapES2RenderPass(new QRenderPass()) + , m_diffuseSpecularMapRHIRenderPass(new QRenderPass()) , m_diffuseSpecularMapGL3Shader(new QShaderProgram()) , m_diffuseSpecularMapGL3ShaderBuilder(new QShaderProgramBuilder()) , m_diffuseSpecularMapGL2ES2Shader(new QShaderProgram()) , m_diffuseSpecularMapGL2ES2ShaderBuilder(new QShaderProgramBuilder()) + , m_diffuseSpecularMapRHIShader(new QShaderProgram()) + , m_diffuseSpecularMapRHIShaderBuilder(new QShaderProgramBuilder()) , m_filterKey(new QFilterKey) { m_diffuseTexture->setMagnificationFilter(QAbstractTexture::Linear); @@ -126,6 +130,14 @@ void QDiffuseSpecularMapMaterialPrivate::init() QStringLiteral("specularTexture"), QStringLiteral("normal")}); + m_diffuseSpecularMapRHIShader->setVertexShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/rhi/default.vert")))); + m_diffuseSpecularMapRHIShaderBuilder->setParent(q); + m_diffuseSpecularMapRHIShaderBuilder->setShaderProgram(m_diffuseSpecularMapRHIShader); + m_diffuseSpecularMapRHIShaderBuilder->setFragmentShaderGraph(QUrl(QStringLiteral("qrc:/shaders/graphs/phong.frag.json"))); + m_diffuseSpecularMapRHIShaderBuilder->setEnabledLayers({QStringLiteral("diffuseTexture"), + QStringLiteral("specularTexture"), + QStringLiteral("normal")}); + m_diffuseSpecularMapGL3Technique->graphicsApiFilter()->setApi(QGraphicsApiFilter::OpenGL); m_diffuseSpecularMapGL3Technique->graphicsApiFilter()->setMajorVersion(3); m_diffuseSpecularMapGL3Technique->graphicsApiFilter()->setMinorVersion(1); @@ -141,6 +153,10 @@ void QDiffuseSpecularMapMaterialPrivate::init() m_diffuseSpecularMapES2Technique->graphicsApiFilter()->setMinorVersion(0); m_diffuseSpecularMapES2Technique->graphicsApiFilter()->setProfile(QGraphicsApiFilter::NoProfile); + m_diffuseSpecularMapRHITechnique->graphicsApiFilter()->setApi(QGraphicsApiFilter::RHI); + m_diffuseSpecularMapRHITechnique->graphicsApiFilter()->setMajorVersion(1); + m_diffuseSpecularMapRHITechnique->graphicsApiFilter()->setMinorVersion(0); + m_filterKey->setParent(q); m_filterKey->setName(QStringLiteral("renderingStyle")); m_filterKey->setValue(QStringLiteral("forward")); @@ -148,18 +164,22 @@ void QDiffuseSpecularMapMaterialPrivate::init() m_diffuseSpecularMapGL3Technique->addFilterKey(m_filterKey); m_diffuseSpecularMapGL2Technique->addFilterKey(m_filterKey); m_diffuseSpecularMapES2Technique->addFilterKey(m_filterKey); + m_diffuseSpecularMapRHITechnique->addFilterKey(m_filterKey); m_diffuseSpecularMapGL3RenderPass->setShaderProgram(m_diffuseSpecularMapGL3Shader); m_diffuseSpecularMapGL2RenderPass->setShaderProgram(m_diffuseSpecularMapGL2ES2Shader); m_diffuseSpecularMapES2RenderPass->setShaderProgram(m_diffuseSpecularMapGL2ES2Shader); + m_diffuseSpecularMapRHIRenderPass->setShaderProgram(m_diffuseSpecularMapRHIShader); m_diffuseSpecularMapGL3Technique->addRenderPass(m_diffuseSpecularMapGL3RenderPass); m_diffuseSpecularMapGL2Technique->addRenderPass(m_diffuseSpecularMapGL2RenderPass); m_diffuseSpecularMapES2Technique->addRenderPass(m_diffuseSpecularMapES2RenderPass); + m_diffuseSpecularMapRHITechnique->addRenderPass(m_diffuseSpecularMapRHIRenderPass); m_diffuseSpecularMapEffect->addTechnique(m_diffuseSpecularMapGL3Technique); m_diffuseSpecularMapEffect->addTechnique(m_diffuseSpecularMapGL2Technique); m_diffuseSpecularMapEffect->addTechnique(m_diffuseSpecularMapES2Technique); + m_diffuseSpecularMapEffect->addTechnique(m_diffuseSpecularMapRHITechnique); m_diffuseSpecularMapEffect->addParameter(m_ambientParameter); m_diffuseSpecularMapEffect->addParameter(m_diffuseParameter); diff --git a/src/extras/defaults/qdiffusespecularmapmaterial_p.h b/src/extras/defaults/qdiffusespecularmapmaterial_p.h index f80922dff..021836c14 100644 --- a/src/extras/defaults/qdiffusespecularmapmaterial_p.h +++ b/src/extras/defaults/qdiffusespecularmapmaterial_p.h @@ -96,13 +96,17 @@ public: Qt3DRender::QTechnique *m_diffuseSpecularMapGL3Technique; Qt3DRender::QTechnique *m_diffuseSpecularMapGL2Technique; Qt3DRender::QTechnique *m_diffuseSpecularMapES2Technique; + Qt3DRender::QTechnique *m_diffuseSpecularMapRHITechnique; Qt3DRender::QRenderPass *m_diffuseSpecularMapGL3RenderPass; Qt3DRender::QRenderPass *m_diffuseSpecularMapGL2RenderPass; Qt3DRender::QRenderPass *m_diffuseSpecularMapES2RenderPass; + Qt3DRender::QRenderPass *m_diffuseSpecularMapRHIRenderPass; Qt3DRender::QShaderProgram *m_diffuseSpecularMapGL3Shader; Qt3DRender::QShaderProgramBuilder *m_diffuseSpecularMapGL3ShaderBuilder; Qt3DRender::QShaderProgram *m_diffuseSpecularMapGL2ES2Shader; Qt3DRender::QShaderProgramBuilder *m_diffuseSpecularMapGL2ES2ShaderBuilder; + Qt3DRender::QShaderProgram *m_diffuseSpecularMapRHIShader; + Qt3DRender::QShaderProgramBuilder *m_diffuseSpecularMapRHIShaderBuilder; Qt3DRender::QFilterKey *m_filterKey; Q_DECLARE_PUBLIC(QDiffuseSpecularMapMaterial) diff --git a/src/extras/defaults/qdiffusespecularmaterial.cpp b/src/extras/defaults/qdiffusespecularmaterial.cpp index 8938ce19a..2cb4c137c 100644 --- a/src/extras/defaults/qdiffusespecularmaterial.cpp +++ b/src/extras/defaults/qdiffusespecularmaterial.cpp @@ -78,13 +78,17 @@ QDiffuseSpecularMaterialPrivate::QDiffuseSpecularMaterialPrivate() , m_gl3Technique(new QTechnique()) , m_gl2Technique(new QTechnique()) , m_es2Technique(new QTechnique()) + , m_rhiTechnique(new QTechnique()) , m_gl3RenderPass(new QRenderPass()) , m_gl2RenderPass(new QRenderPass()) , m_es2RenderPass(new QRenderPass()) + , m_rhiRenderPass(new QRenderPass()) , m_gl3Shader(new QShaderProgram()) , m_gl3ShaderBuilder(new QShaderProgramBuilder()) , m_gl2es2Shader(new QShaderProgram()) , m_gl2es2ShaderBuilder(new QShaderProgramBuilder()) + , m_rhiShader(new QShaderProgram()) + , m_rhiShaderBuilder(new QShaderProgramBuilder()) , m_noDepthMask(new QNoDepthMask()) , m_blendState(new QBlendEquationArguments()) , m_blendEquation(new QBlendEquation()) @@ -127,6 +131,14 @@ void QDiffuseSpecularMaterialPrivate::init() QStringLiteral("specular"), QStringLiteral("normal")}); + m_rhiShader->setVertexShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/rhi/default.vert")))); + m_rhiShaderBuilder->setParent(q); + m_rhiShaderBuilder->setShaderProgram(m_rhiShader); + m_rhiShaderBuilder->setFragmentShaderGraph(QUrl(QStringLiteral("qrc:/shaders/graphs/phong.frag.json"))); + m_rhiShaderBuilder->setEnabledLayers({QStringLiteral("diffuse"), + QStringLiteral("specular"), + QStringLiteral("normal")}); + m_gl3Technique->graphicsApiFilter()->setApi(QGraphicsApiFilter::OpenGL); m_gl3Technique->graphicsApiFilter()->setMajorVersion(3); @@ -143,6 +155,10 @@ void QDiffuseSpecularMaterialPrivate::init() m_es2Technique->graphicsApiFilter()->setMinorVersion(0); m_es2Technique->graphicsApiFilter()->setProfile(QGraphicsApiFilter::NoProfile); + m_rhiTechnique->graphicsApiFilter()->setApi(QGraphicsApiFilter::RHI); + m_rhiTechnique->graphicsApiFilter()->setMajorVersion(1); + m_rhiTechnique->graphicsApiFilter()->setMinorVersion(0); + m_noDepthMask->setEnabled(false); m_blendState->setEnabled(false); m_blendState->setSourceRgb(QBlendEquationArguments::SourceAlpha); @@ -153,6 +169,7 @@ void QDiffuseSpecularMaterialPrivate::init() m_gl3RenderPass->setShaderProgram(m_gl3Shader); m_gl2RenderPass->setShaderProgram(m_gl2es2Shader); m_es2RenderPass->setShaderProgram(m_gl2es2Shader); + m_rhiRenderPass->setShaderProgram(m_rhiShader); m_gl3RenderPass->addRenderState(m_noDepthMask); m_gl3RenderPass->addRenderState(m_blendState); @@ -166,9 +183,14 @@ void QDiffuseSpecularMaterialPrivate::init() m_es2RenderPass->addRenderState(m_blendState); m_es2RenderPass->addRenderState(m_blendEquation); + m_rhiRenderPass->addRenderState(m_noDepthMask); + m_rhiRenderPass->addRenderState(m_blendState); + m_rhiRenderPass->addRenderState(m_blendEquation); + m_gl3Technique->addRenderPass(m_gl3RenderPass); m_gl2Technique->addRenderPass(m_gl2RenderPass); m_es2Technique->addRenderPass(m_es2RenderPass); + m_rhiTechnique->addRenderPass(m_rhiRenderPass); m_filterKey->setParent(q); m_filterKey->setName(QStringLiteral("renderingStyle")); @@ -177,10 +199,12 @@ void QDiffuseSpecularMaterialPrivate::init() m_gl3Technique->addFilterKey(m_filterKey); m_gl2Technique->addFilterKey(m_filterKey); m_es2Technique->addFilterKey(m_filterKey); + m_rhiTechnique->addFilterKey(m_filterKey); m_effect->addTechnique(m_gl3Technique); m_effect->addTechnique(m_gl2Technique); m_effect->addTechnique(m_es2Technique); + m_effect->addTechnique(m_rhiTechnique); m_effect->addParameter(m_ambientParameter); m_effect->addParameter(m_diffuseParameter); diff --git a/src/extras/defaults/qdiffusespecularmaterial_p.h b/src/extras/defaults/qdiffusespecularmaterial_p.h index 2b0b2184f..9e2b2bbbb 100644 --- a/src/extras/defaults/qdiffusespecularmaterial_p.h +++ b/src/extras/defaults/qdiffusespecularmaterial_p.h @@ -97,13 +97,17 @@ public: Qt3DRender::QTechnique *m_gl3Technique; Qt3DRender::QTechnique *m_gl2Technique; Qt3DRender::QTechnique *m_es2Technique; + Qt3DRender::QTechnique *m_rhiTechnique; Qt3DRender::QRenderPass *m_gl3RenderPass; Qt3DRender::QRenderPass *m_gl2RenderPass; Qt3DRender::QRenderPass *m_es2RenderPass; + Qt3DRender::QRenderPass *m_rhiRenderPass; Qt3DRender::QShaderProgram *m_gl3Shader; Qt3DRender::QShaderProgramBuilder *m_gl3ShaderBuilder; Qt3DRender::QShaderProgram *m_gl2es2Shader; Qt3DRender::QShaderProgramBuilder *m_gl2es2ShaderBuilder; + Qt3DRender::QShaderProgram *m_rhiShader; + Qt3DRender::QShaderProgramBuilder *m_rhiShaderBuilder; Qt3DRender::QNoDepthMask *m_noDepthMask; Qt3DRender::QBlendEquationArguments *m_blendState; Qt3DRender::QBlendEquation *m_blendEquation; 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); diff --git a/src/extras/defaults/qgoochmaterial_p.h b/src/extras/defaults/qgoochmaterial_p.h index d4ef256f6..aca9ce639 100644 --- a/src/extras/defaults/qgoochmaterial_p.h +++ b/src/extras/defaults/qgoochmaterial_p.h @@ -93,11 +93,14 @@ public: Qt3DRender::QTechnique *m_gl3Technique; Qt3DRender::QTechnique *m_gl2Technique; Qt3DRender::QTechnique *m_es2Technique; + Qt3DRender::QTechnique *m_rhiTechnique; Qt3DRender::QRenderPass *m_gl3RenderPass; Qt3DRender::QRenderPass *m_gl2RenderPass; Qt3DRender::QRenderPass *m_es2RenderPass; + Qt3DRender::QRenderPass *m_rhiRenderPass; Qt3DRender::QShaderProgram *m_gl3Shader; Qt3DRender::QShaderProgram *m_gl2ES2Shader; + Qt3DRender::QShaderProgram *m_rhiShader; Qt3DRender::QFilterKey *m_filterKey; Q_DECLARE_PUBLIC(QGoochMaterial) diff --git a/src/extras/defaults/qmetalroughmaterial.cpp b/src/extras/defaults/qmetalroughmaterial.cpp index 7d5ee61ea..7aecfa65d 100644 --- a/src/extras/defaults/qmetalroughmaterial.cpp +++ b/src/extras/defaults/qmetalroughmaterial.cpp @@ -79,6 +79,10 @@ QMetalRoughMaterialPrivate::QMetalRoughMaterialPrivate() , m_metalRoughES3RenderPass(new QRenderPass()) , m_metalRoughES3Shader(new QShaderProgram()) , m_metalRoughES3ShaderBuilder(new QShaderProgramBuilder()) + , m_metalRoughRHITechnique(new QTechnique()) + , m_metalRoughRHIRenderPass(new QRenderPass()) + , m_metalRoughRHIShader(new QShaderProgram()) + , m_metalRoughRHIShaderBuilder(new QShaderProgramBuilder()) , m_filterKey(new QFilterKey) { } @@ -120,6 +124,16 @@ void QMetalRoughMaterialPrivate::init() QStringLiteral("ambientOcclusion"), QStringLiteral("normal")}); + m_metalRoughRHIShader->setVertexShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/rhi/default.vert")))); + m_metalRoughRHIShaderBuilder->setParent(q); + m_metalRoughRHIShaderBuilder->setShaderProgram(m_metalRoughRHIShader); + m_metalRoughRHIShaderBuilder->setFragmentShaderGraph(QUrl(QStringLiteral("qrc:/shaders/graphs/metalrough.frag.json"))); + m_metalRoughRHIShaderBuilder->setEnabledLayers({QStringLiteral("baseColor"), + QStringLiteral("metalness"), + QStringLiteral("roughness"), + QStringLiteral("ambientOcclusion"), + QStringLiteral("normal")}); + m_metalRoughGL3Technique->graphicsApiFilter()->setApi(QGraphicsApiFilter::OpenGL); m_metalRoughGL3Technique->graphicsApiFilter()->setMajorVersion(3); m_metalRoughGL3Technique->graphicsApiFilter()->setMinorVersion(1); @@ -129,6 +143,10 @@ void QMetalRoughMaterialPrivate::init() m_metalRoughES3Technique->graphicsApiFilter()->setMajorVersion(3); m_metalRoughES3Technique->graphicsApiFilter()->setMinorVersion(0); + m_metalRoughRHITechnique->graphicsApiFilter()->setApi(QGraphicsApiFilter::RHI); + m_metalRoughRHITechnique->graphicsApiFilter()->setMajorVersion(1); + m_metalRoughRHITechnique->graphicsApiFilter()->setMinorVersion(0); + m_filterKey->setParent(q); m_filterKey->setName(QStringLiteral("renderingStyle")); m_filterKey->setValue(QStringLiteral("forward")); @@ -143,6 +161,11 @@ void QMetalRoughMaterialPrivate::init() m_metalRoughES3Technique->addRenderPass(m_metalRoughES3RenderPass); m_metalRoughEffect->addTechnique(m_metalRoughES3Technique); + m_metalRoughRHITechnique->addFilterKey(m_filterKey); + m_metalRoughRHIRenderPass->setShaderProgram(m_metalRoughRHIShader); + m_metalRoughRHITechnique->addRenderPass(m_metalRoughRHIRenderPass); + m_metalRoughEffect->addTechnique(m_metalRoughRHITechnique); + // Given parameters a parent m_baseColorMapParameter->setParent(m_metalRoughEffect); m_metalnessMapParameter->setParent(m_metalRoughEffect); diff --git a/src/extras/defaults/qmetalroughmaterial_p.h b/src/extras/defaults/qmetalroughmaterial_p.h index 4d8b68320..15a869ff1 100644 --- a/src/extras/defaults/qmetalroughmaterial_p.h +++ b/src/extras/defaults/qmetalroughmaterial_p.h @@ -99,6 +99,10 @@ public: Qt3DRender::QRenderPass *m_metalRoughES3RenderPass; Qt3DRender::QShaderProgram *m_metalRoughES3Shader; Qt3DRender::QShaderProgramBuilder *m_metalRoughES3ShaderBuilder; + Qt3DRender::QTechnique *m_metalRoughRHITechnique; + Qt3DRender::QRenderPass *m_metalRoughRHIRenderPass; + Qt3DRender::QShaderProgram *m_metalRoughRHIShader; + Qt3DRender::QShaderProgramBuilder *m_metalRoughRHIShaderBuilder; Qt3DRender::QFilterKey *m_filterKey; Q_DECLARE_PUBLIC(QMetalRoughMaterial) diff --git a/src/extras/defaults/qmorphphongmaterial.cpp b/src/extras/defaults/qmorphphongmaterial.cpp index 1711a21dd..8469fc127 100644 --- a/src/extras/defaults/qmorphphongmaterial.cpp +++ b/src/extras/defaults/qmorphphongmaterial.cpp @@ -66,13 +66,17 @@ QMorphPhongMaterialPrivate::QMorphPhongMaterialPrivate() , 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_phongGL2ES2Shader(new QShaderProgram()) + , m_phongRHIShader(new QShaderProgram()) , m_phongGL3ShaderBuilder(new QShaderProgramBuilder()) , m_phongGL2ES2ShaderBuilder(new QShaderProgramBuilder()) + , m_phongRHIShaderBuilder(new QShaderProgramBuilder()) , m_filterKey(new QFilterKey) { } @@ -99,6 +103,7 @@ void QMorphPhongMaterialPrivate::init() m_phongGL3ShaderBuilder->setEnabledLayers({QStringLiteral("diffuse"), QStringLiteral("specular"), QStringLiteral("normal")}); + m_phongGL2ES2Shader->setVertexShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/es2/morphphong.vert")))); m_phongGL2ES2ShaderBuilder->setParent(q); m_phongGL2ES2ShaderBuilder->setShaderProgram(m_phongGL2ES2Shader); @@ -107,6 +112,14 @@ void QMorphPhongMaterialPrivate::init() QStringLiteral("specular"), QStringLiteral("normal")}); + m_phongRHIShader->setVertexShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/rhi/morphphong.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); @@ -122,13 +135,19 @@ void QMorphPhongMaterialPrivate::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")); @@ -137,10 +156,12 @@ void QMorphPhongMaterialPrivate::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); diff --git a/src/extras/defaults/qmorphphongmaterial_p.h b/src/extras/defaults/qmorphphongmaterial_p.h index 28b7750d9..4ee8954fe 100644 --- a/src/extras/defaults/qmorphphongmaterial_p.h +++ b/src/extras/defaults/qmorphphongmaterial_p.h @@ -90,13 +90,17 @@ public: Qt3DRender::QTechnique *m_phongGL3Technique; Qt3DRender::QTechnique *m_phongGL2Technique; Qt3DRender::QTechnique *m_phongES2Technique; + Qt3DRender::QTechnique *m_phongRHITechnique; Qt3DRender::QRenderPass *m_phongGL3RenderPass; Qt3DRender::QRenderPass *m_phongGL2RenderPass; Qt3DRender::QRenderPass *m_phongES2RenderPass; + Qt3DRender::QRenderPass *m_phongRHIRenderPass; Qt3DRender::QShaderProgram *m_phongGL3Shader; Qt3DRender::QShaderProgram *m_phongGL2ES2Shader; + Qt3DRender::QShaderProgram *m_phongRHIShader; Qt3DRender::QShaderProgramBuilder *m_phongGL3ShaderBuilder; Qt3DRender::QShaderProgramBuilder *m_phongGL2ES2ShaderBuilder; + Qt3DRender::QShaderProgramBuilder *m_phongRHIShaderBuilder; Qt3DRender::QFilterKey *m_filterKey; Q_DECLARE_PUBLIC(QMorphPhongMaterial) diff --git a/src/extras/defaults/qnormaldiffusemapalphamaterial.cpp b/src/extras/defaults/qnormaldiffusemapalphamaterial.cpp index 27fda6879..03b8d8385 100644 --- a/src/extras/defaults/qnormaldiffusemapalphamaterial.cpp +++ b/src/extras/defaults/qnormaldiffusemapalphamaterial.cpp @@ -101,6 +101,14 @@ void QNormalDiffuseMapAlphaMaterialPrivate::init() QStringLiteral("specular"), QStringLiteral("normalTexture")}); + m_normalDiffuseRHIShader->setVertexShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/rhi/default.vert")))); + m_normalDiffuseRHIShaderBuilder->setParent(q); + m_normalDiffuseRHIShaderBuilder->setShaderProgram(m_normalDiffuseRHIShader); + m_normalDiffuseRHIShaderBuilder->setFragmentShaderGraph(QUrl(QStringLiteral("qrc:/shaders/graphs/phong.frag.json"))); + m_normalDiffuseRHIShaderBuilder->setEnabledLayers({QStringLiteral("diffuseTexture"), + QStringLiteral("specular"), + QStringLiteral("normalTexture")}); + m_normalDiffuseGL3Technique->graphicsApiFilter()->setApi(QGraphicsApiFilter::OpenGL); m_normalDiffuseGL3Technique->graphicsApiFilter()->setMajorVersion(3); m_normalDiffuseGL3Technique->graphicsApiFilter()->setMinorVersion(1); @@ -116,6 +124,10 @@ void QNormalDiffuseMapAlphaMaterialPrivate::init() m_normalDiffuseES2Technique->graphicsApiFilter()->setMinorVersion(0); m_normalDiffuseES2Technique->graphicsApiFilter()->setProfile(QGraphicsApiFilter::NoProfile); + m_normalDiffuseRHITechnique->graphicsApiFilter()->setApi(QGraphicsApiFilter::RHI); + m_normalDiffuseRHITechnique->graphicsApiFilter()->setMajorVersion(1); + m_normalDiffuseRHITechnique->graphicsApiFilter()->setMinorVersion(0); + m_filterKey->setParent(q); m_filterKey->setName(QStringLiteral("renderingStyle")); m_filterKey->setValue(QStringLiteral("forward")); @@ -123,6 +135,7 @@ void QNormalDiffuseMapAlphaMaterialPrivate::init() m_normalDiffuseGL3Technique->addFilterKey(m_filterKey); m_normalDiffuseGL2Technique->addFilterKey(m_filterKey); m_normalDiffuseES2Technique->addFilterKey(m_filterKey); + m_normalDiffuseRHITechnique->addFilterKey(m_filterKey); m_depthTest->setDepthFunction(QDepthTest::Less); @@ -138,13 +151,19 @@ void QNormalDiffuseMapAlphaMaterialPrivate::init() m_normalDiffuseES2RenderPass->addRenderState(m_alphaCoverage); m_normalDiffuseES2RenderPass->addRenderState(m_depthTest); + m_normalDiffuseRHIRenderPass->setShaderProgram(m_normalDiffuseRHIShader); + m_normalDiffuseRHIRenderPass->addRenderState(m_alphaCoverage); + m_normalDiffuseRHIRenderPass->addRenderState(m_depthTest); + m_normalDiffuseGL3Technique->addRenderPass(m_normalDiffuseGL3RenderPass); m_normalDiffuseGL2Technique->addRenderPass(m_normalDiffuseGL2RenderPass); m_normalDiffuseES2Technique->addRenderPass(m_normalDiffuseES2RenderPass); + m_normalDiffuseRHITechnique->addRenderPass(m_normalDiffuseRHIRenderPass); m_normalDiffuseEffect->addTechnique(m_normalDiffuseGL3Technique); m_normalDiffuseEffect->addTechnique(m_normalDiffuseGL2Technique); m_normalDiffuseEffect->addTechnique(m_normalDiffuseES2Technique); + m_normalDiffuseEffect->addTechnique(m_normalDiffuseRHITechnique); m_normalDiffuseEffect->addParameter(m_ambientParameter); m_normalDiffuseEffect->addParameter(m_diffuseParameter); diff --git a/src/extras/defaults/qnormaldiffusemapmaterial.cpp b/src/extras/defaults/qnormaldiffusemapmaterial.cpp index 9d41ddb32..c4f3e15b2 100644 --- a/src/extras/defaults/qnormaldiffusemapmaterial.cpp +++ b/src/extras/defaults/qnormaldiffusemapmaterial.cpp @@ -73,13 +73,17 @@ QNormalDiffuseMapMaterialPrivate::QNormalDiffuseMapMaterialPrivate() , m_normalDiffuseGL3Technique(new QTechnique()) , m_normalDiffuseGL2Technique(new QTechnique()) , m_normalDiffuseES2Technique(new QTechnique()) + , m_normalDiffuseRHITechnique(new QTechnique()) , m_normalDiffuseGL3RenderPass(new QRenderPass()) , m_normalDiffuseGL2RenderPass(new QRenderPass()) , m_normalDiffuseES2RenderPass(new QRenderPass()) + , m_normalDiffuseRHIRenderPass(new QRenderPass()) , m_normalDiffuseGL3Shader(new QShaderProgram()) , m_normalDiffuseGL3ShaderBuilder(new QShaderProgramBuilder()) , m_normalDiffuseGL2ES2Shader(new QShaderProgram()) , m_normalDiffuseGL2ES2ShaderBuilder(new QShaderProgramBuilder()) + , m_normalDiffuseRHIShader(new QShaderProgram()) + , m_normalDiffuseRHIShaderBuilder(new QShaderProgramBuilder()) , m_filterKey(new QFilterKey) { m_diffuseTexture->setMagnificationFilter(QAbstractTexture::Linear); @@ -128,6 +132,14 @@ void QNormalDiffuseMapMaterialPrivate::init() QStringLiteral("specular"), QStringLiteral("normalTexture")}); + m_normalDiffuseRHIShader->setVertexShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/rhi/default.vert")))); + m_normalDiffuseRHIShaderBuilder->setParent(q); + m_normalDiffuseRHIShaderBuilder->setShaderProgram(m_normalDiffuseRHIShader); + m_normalDiffuseRHIShaderBuilder->setFragmentShaderGraph(QUrl(QStringLiteral("qrc:/shaders/graphs/phong.frag.json"))); + m_normalDiffuseRHIShaderBuilder->setEnabledLayers({QStringLiteral("diffuseTexture"), + QStringLiteral("specular"), + QStringLiteral("normalTexture")}); + m_normalDiffuseGL3Technique->graphicsApiFilter()->setApi(QGraphicsApiFilter::OpenGL); m_normalDiffuseGL3Technique->graphicsApiFilter()->setMajorVersion(3); m_normalDiffuseGL3Technique->graphicsApiFilter()->setMinorVersion(1); @@ -143,6 +155,10 @@ void QNormalDiffuseMapMaterialPrivate::init() m_normalDiffuseES2Technique->graphicsApiFilter()->setMinorVersion(0); m_normalDiffuseES2Technique->graphicsApiFilter()->setProfile(QGraphicsApiFilter::NoProfile); + m_normalDiffuseRHITechnique->graphicsApiFilter()->setApi(QGraphicsApiFilter::RHI); + m_normalDiffuseRHITechnique->graphicsApiFilter()->setMajorVersion(1); + m_normalDiffuseRHITechnique->graphicsApiFilter()->setMinorVersion(0); + m_filterKey->setParent(q); m_filterKey->setName(QStringLiteral("renderingStyle")); m_filterKey->setValue(QStringLiteral("forward")); @@ -150,18 +166,22 @@ void QNormalDiffuseMapMaterialPrivate::init() m_normalDiffuseGL3Technique->addFilterKey(m_filterKey); m_normalDiffuseGL2Technique->addFilterKey(m_filterKey); m_normalDiffuseES2Technique->addFilterKey(m_filterKey); + m_normalDiffuseRHITechnique->addFilterKey(m_filterKey); m_normalDiffuseGL3RenderPass->setShaderProgram(m_normalDiffuseGL3Shader); m_normalDiffuseGL2RenderPass->setShaderProgram(m_normalDiffuseGL2ES2Shader); m_normalDiffuseES2RenderPass->setShaderProgram(m_normalDiffuseGL2ES2Shader); + m_normalDiffuseRHIRenderPass->setShaderProgram(m_normalDiffuseRHIShader); m_normalDiffuseGL3Technique->addRenderPass(m_normalDiffuseGL3RenderPass); m_normalDiffuseGL2Technique->addRenderPass(m_normalDiffuseGL2RenderPass); m_normalDiffuseES2Technique->addRenderPass(m_normalDiffuseES2RenderPass); + m_normalDiffuseRHITechnique->addRenderPass(m_normalDiffuseRHIRenderPass); m_normalDiffuseEffect->addTechnique(m_normalDiffuseGL3Technique); m_normalDiffuseEffect->addTechnique(m_normalDiffuseGL2Technique); m_normalDiffuseEffect->addTechnique(m_normalDiffuseES2Technique); + m_normalDiffuseEffect->addTechnique(m_normalDiffuseRHITechnique); m_normalDiffuseEffect->addParameter(m_ambientParameter); m_normalDiffuseEffect->addParameter(m_diffuseParameter); diff --git a/src/extras/defaults/qnormaldiffusemapmaterial_p.h b/src/extras/defaults/qnormaldiffusemapmaterial_p.h index 1ac937b1e..5a5839682 100644 --- a/src/extras/defaults/qnormaldiffusemapmaterial_p.h +++ b/src/extras/defaults/qnormaldiffusemapmaterial_p.h @@ -98,13 +98,17 @@ public: Qt3DRender::QTechnique *m_normalDiffuseGL3Technique; Qt3DRender::QTechnique *m_normalDiffuseGL2Technique; Qt3DRender::QTechnique *m_normalDiffuseES2Technique; + Qt3DRender::QTechnique *m_normalDiffuseRHITechnique; Qt3DRender::QRenderPass *m_normalDiffuseGL3RenderPass; Qt3DRender::QRenderPass *m_normalDiffuseGL2RenderPass; Qt3DRender::QRenderPass *m_normalDiffuseES2RenderPass; + Qt3DRender::QRenderPass *m_normalDiffuseRHIRenderPass; Qt3DRender::QShaderProgram *m_normalDiffuseGL3Shader; Qt3DRender::QShaderProgramBuilder *m_normalDiffuseGL3ShaderBuilder; Qt3DRender::QShaderProgram *m_normalDiffuseGL2ES2Shader; Qt3DRender::QShaderProgramBuilder *m_normalDiffuseGL2ES2ShaderBuilder; + Qt3DRender::QShaderProgram *m_normalDiffuseRHIShader; + Qt3DRender::QShaderProgramBuilder *m_normalDiffuseRHIShaderBuilder; Qt3DRender::QFilterKey *m_filterKey; Q_DECLARE_PUBLIC(QNormalDiffuseMapMaterial) diff --git a/src/extras/defaults/qnormaldiffusespecularmapmaterial.cpp b/src/extras/defaults/qnormaldiffusespecularmapmaterial.cpp index a76d9856b..66586ef18 100644 --- a/src/extras/defaults/qnormaldiffusespecularmapmaterial.cpp +++ b/src/extras/defaults/qnormaldiffusespecularmapmaterial.cpp @@ -75,13 +75,17 @@ QNormalDiffuseSpecularMapMaterialPrivate::QNormalDiffuseSpecularMapMaterialPriva , m_normalDiffuseSpecularGL3Technique(new QTechnique()) , m_normalDiffuseSpecularGL2Technique(new QTechnique()) , m_normalDiffuseSpecularES2Technique(new QTechnique()) + , m_normalDiffuseSpecularRHITechnique(new QTechnique()) , m_normalDiffuseSpecularGL3RenderPass(new QRenderPass()) , m_normalDiffuseSpecularGL2RenderPass(new QRenderPass()) , m_normalDiffuseSpecularES2RenderPass(new QRenderPass()) + , m_normalDiffuseSpecularRHIRenderPass(new QRenderPass()) , m_normalDiffuseSpecularGL3Shader(new QShaderProgram()) , m_normalDiffuseSpecularGL3ShaderBuilder(new QShaderProgramBuilder()) , m_normalDiffuseSpecularGL2ES2Shader(new QShaderProgram()) , m_normalDiffuseSpecularGL2ES2ShaderBuilder(new QShaderProgramBuilder()) + , m_normalDiffuseSpecularRHIShader(new QShaderProgram()) + , m_normalDiffuseSpecularRHIShaderBuilder(new QShaderProgramBuilder()) , m_filterKey(new QFilterKey) { m_diffuseTexture->setMagnificationFilter(QAbstractTexture::Linear); @@ -136,6 +140,14 @@ void QNormalDiffuseSpecularMapMaterialPrivate::init() QStringLiteral("specularTexture"), QStringLiteral("normalTexture")}); + m_normalDiffuseSpecularRHIShader->setVertexShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/rhi/default.vert")))); + m_normalDiffuseSpecularRHIShaderBuilder->setParent(q); + m_normalDiffuseSpecularRHIShaderBuilder->setShaderProgram(m_normalDiffuseSpecularRHIShader); + m_normalDiffuseSpecularRHIShaderBuilder->setFragmentShaderGraph(QUrl(QStringLiteral("qrc:/shaders/graphs/phong.frag.json"))); + m_normalDiffuseSpecularRHIShaderBuilder->setEnabledLayers({QStringLiteral("diffuseTexture"), + QStringLiteral("specularTexture"), + QStringLiteral("normalTexture")}); + m_normalDiffuseSpecularGL3Technique->graphicsApiFilter()->setApi(QGraphicsApiFilter::OpenGL); m_normalDiffuseSpecularGL3Technique->graphicsApiFilter()->setMajorVersion(3); m_normalDiffuseSpecularGL3Technique->graphicsApiFilter()->setMinorVersion(1); @@ -151,6 +163,10 @@ void QNormalDiffuseSpecularMapMaterialPrivate::init() m_normalDiffuseSpecularES2Technique->graphicsApiFilter()->setMinorVersion(0); m_normalDiffuseSpecularES2Technique->graphicsApiFilter()->setProfile(QGraphicsApiFilter::NoProfile); + m_normalDiffuseSpecularRHITechnique->graphicsApiFilter()->setApi(QGraphicsApiFilter::RHI); + m_normalDiffuseSpecularRHITechnique->graphicsApiFilter()->setMajorVersion(1); + m_normalDiffuseSpecularRHITechnique->graphicsApiFilter()->setMinorVersion(0); + m_filterKey->setParent(q); m_filterKey->setName(QStringLiteral("renderingStyle")); m_filterKey->setValue(QStringLiteral("forward")); @@ -158,18 +174,22 @@ void QNormalDiffuseSpecularMapMaterialPrivate::init() m_normalDiffuseSpecularGL3Technique->addFilterKey(m_filterKey); m_normalDiffuseSpecularGL2Technique->addFilterKey(m_filterKey); m_normalDiffuseSpecularES2Technique->addFilterKey(m_filterKey); + m_normalDiffuseSpecularRHITechnique->addFilterKey(m_filterKey); m_normalDiffuseSpecularGL3RenderPass->setShaderProgram(m_normalDiffuseSpecularGL3Shader); m_normalDiffuseSpecularGL2RenderPass->setShaderProgram(m_normalDiffuseSpecularGL2ES2Shader); m_normalDiffuseSpecularES2RenderPass->setShaderProgram(m_normalDiffuseSpecularGL2ES2Shader); + m_normalDiffuseSpecularRHIRenderPass->setShaderProgram(m_normalDiffuseSpecularRHIShader); m_normalDiffuseSpecularGL3Technique->addRenderPass(m_normalDiffuseSpecularGL3RenderPass); m_normalDiffuseSpecularGL2Technique->addRenderPass(m_normalDiffuseSpecularGL2RenderPass); m_normalDiffuseSpecularES2Technique->addRenderPass(m_normalDiffuseSpecularES2RenderPass); + m_normalDiffuseSpecularRHITechnique->addRenderPass(m_normalDiffuseSpecularRHIRenderPass); m_normalDiffuseSpecularEffect->addTechnique(m_normalDiffuseSpecularGL3Technique); m_normalDiffuseSpecularEffect->addTechnique(m_normalDiffuseSpecularGL2Technique); m_normalDiffuseSpecularEffect->addTechnique(m_normalDiffuseSpecularES2Technique); + m_normalDiffuseSpecularEffect->addTechnique(m_normalDiffuseSpecularRHITechnique); m_normalDiffuseSpecularEffect->addParameter(m_ambientParameter); m_normalDiffuseSpecularEffect->addParameter(m_diffuseParameter); diff --git a/src/extras/defaults/qnormaldiffusespecularmapmaterial_p.h b/src/extras/defaults/qnormaldiffusespecularmapmaterial_p.h index e02451cc0..0a0d519ad 100644 --- a/src/extras/defaults/qnormaldiffusespecularmapmaterial_p.h +++ b/src/extras/defaults/qnormaldiffusespecularmapmaterial_p.h @@ -99,13 +99,17 @@ public: Qt3DRender::QTechnique *m_normalDiffuseSpecularGL3Technique; Qt3DRender::QTechnique *m_normalDiffuseSpecularGL2Technique; Qt3DRender::QTechnique *m_normalDiffuseSpecularES2Technique; + Qt3DRender::QTechnique *m_normalDiffuseSpecularRHITechnique; Qt3DRender::QRenderPass *m_normalDiffuseSpecularGL3RenderPass; Qt3DRender::QRenderPass *m_normalDiffuseSpecularGL2RenderPass; Qt3DRender::QRenderPass *m_normalDiffuseSpecularES2RenderPass; + Qt3DRender::QRenderPass *m_normalDiffuseSpecularRHIRenderPass; Qt3DRender::QShaderProgram *m_normalDiffuseSpecularGL3Shader; Qt3DRender::QShaderProgramBuilder *m_normalDiffuseSpecularGL3ShaderBuilder; Qt3DRender::QShaderProgram *m_normalDiffuseSpecularGL2ES2Shader; Qt3DRender::QShaderProgramBuilder *m_normalDiffuseSpecularGL2ES2ShaderBuilder; + Qt3DRender::QShaderProgram *m_normalDiffuseSpecularRHIShader; + Qt3DRender::QShaderProgramBuilder *m_normalDiffuseSpecularRHIShaderBuilder; Qt3DRender::QFilterKey *m_filterKey; Q_DECLARE_PUBLIC(QNormalDiffuseSpecularMapMaterial) diff --git a/src/extras/defaults/qpervertexcolormaterial.cpp b/src/extras/defaults/qpervertexcolormaterial.cpp index f0462039e..ef41cbce7 100644 --- a/src/extras/defaults/qpervertexcolormaterial.cpp +++ b/src/extras/defaults/qpervertexcolormaterial.cpp @@ -64,11 +64,14 @@ QPerVertexColorMaterialPrivate::QPerVertexColorMaterialPrivate() , m_vertexGL3Technique(new QTechnique()) , m_vertexGL2Technique(new QTechnique()) , m_vertexES2Technique(new QTechnique()) + , m_vertexRHITechnique(new QTechnique()) , m_vertexGL3RenderPass(new QRenderPass()) , m_vertexGL2RenderPass(new QRenderPass()) , m_vertexES2RenderPass(new QRenderPass()) + , m_vertexRHIRenderPass(new QRenderPass()) , m_vertexGL3Shader(new QShaderProgram()) , m_vertexGL2ES2Shader(new QShaderProgram()) + , m_vertexRHIShader(new QShaderProgram()) , m_filterKey(new QFilterKey) { } @@ -119,6 +122,8 @@ void QPerVertexColorMaterialPrivate::init() m_vertexGL3Shader->setFragmentShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/gl3/pervertexcolor.frag")))); m_vertexGL2ES2Shader->setVertexShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/es2/pervertexcolor.vert")))); m_vertexGL2ES2Shader->setFragmentShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/es2/pervertexcolor.frag")))); + m_vertexRHIShader->setVertexShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/rhi/pervertexcolor.vert")))); + m_vertexRHIShader->setFragmentShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/rhi/pervertexcolor.frag")))); m_vertexGL3Technique->graphicsApiFilter()->setApi(QGraphicsApiFilter::OpenGL); m_vertexGL3Technique->graphicsApiFilter()->setMajorVersion(3); @@ -135,6 +140,10 @@ void QPerVertexColorMaterialPrivate::init() m_vertexES2Technique->graphicsApiFilter()->setMinorVersion(0); m_vertexES2Technique->graphicsApiFilter()->setProfile(QGraphicsApiFilter::NoProfile); + m_vertexRHITechnique->graphicsApiFilter()->setApi(QGraphicsApiFilter::RHI); + m_vertexRHITechnique->graphicsApiFilter()->setMajorVersion(1); + m_vertexRHITechnique->graphicsApiFilter()->setMinorVersion(0); + Q_Q(QPerVertexColorMaterial); m_filterKey->setParent(q); m_filterKey->setName(QStringLiteral("renderingStyle")); @@ -143,18 +152,22 @@ void QPerVertexColorMaterialPrivate::init() m_vertexGL3Technique->addFilterKey(m_filterKey); m_vertexGL2Technique->addFilterKey(m_filterKey); m_vertexES2Technique->addFilterKey(m_filterKey); + m_vertexRHITechnique->addFilterKey(m_filterKey); m_vertexGL3RenderPass->setShaderProgram(m_vertexGL3Shader); m_vertexGL2RenderPass->setShaderProgram(m_vertexGL2ES2Shader); m_vertexES2RenderPass->setShaderProgram(m_vertexGL2ES2Shader); + m_vertexRHIRenderPass->setShaderProgram(m_vertexRHIShader); m_vertexGL3Technique->addRenderPass(m_vertexGL3RenderPass); m_vertexGL2Technique->addRenderPass(m_vertexGL2RenderPass); m_vertexES2Technique->addRenderPass(m_vertexES2RenderPass); + m_vertexRHITechnique->addRenderPass(m_vertexRHIRenderPass); m_vertexEffect->addTechnique(m_vertexGL3Technique); m_vertexEffect->addTechnique(m_vertexGL2Technique); m_vertexEffect->addTechnique(m_vertexES2Technique); + m_vertexEffect->addTechnique(m_vertexRHITechnique); q->setEffect(m_vertexEffect); } diff --git a/src/extras/defaults/qpervertexcolormaterial_p.h b/src/extras/defaults/qpervertexcolormaterial_p.h index 678353525..8c5c3eefa 100644 --- a/src/extras/defaults/qpervertexcolormaterial_p.h +++ b/src/extras/defaults/qpervertexcolormaterial_p.h @@ -81,11 +81,14 @@ public: Qt3DRender::QTechnique *m_vertexGL3Technique; Qt3DRender::QTechnique *m_vertexGL2Technique; Qt3DRender::QTechnique *m_vertexES2Technique; + Qt3DRender::QTechnique *m_vertexRHITechnique; Qt3DRender::QRenderPass *m_vertexGL3RenderPass; Qt3DRender::QRenderPass *m_vertexGL2RenderPass; Qt3DRender::QRenderPass *m_vertexES2RenderPass; + Qt3DRender::QRenderPass *m_vertexRHIRenderPass; Qt3DRender::QShaderProgram *m_vertexGL3Shader; Qt3DRender::QShaderProgram *m_vertexGL2ES2Shader; + Qt3DRender::QShaderProgram *m_vertexRHIShader; Qt3DRender::QFilterKey *m_filterKey; Q_DECLARE_PUBLIC(QPerVertexColorMaterial) diff --git a/src/extras/defaults/qphongalphamaterial.cpp b/src/extras/defaults/qphongalphamaterial.cpp index 2f705072f..8d8464d85 100644 --- a/src/extras/defaults/qphongalphamaterial.cpp +++ b/src/extras/defaults/qphongalphamaterial.cpp @@ -72,13 +72,17 @@ QPhongAlphaMaterialPrivate::QPhongAlphaMaterialPrivate() , m_phongAlphaGL3Technique(new QTechnique()) , m_phongAlphaGL2Technique(new QTechnique()) , m_phongAlphaES2Technique(new QTechnique()) + , m_phongAlphaRHITechnique(new QTechnique()) , m_phongAlphaGL3RenderPass(new QRenderPass()) , m_phongAlphaGL2RenderPass(new QRenderPass()) , m_phongAlphaES2RenderPass(new QRenderPass()) + , m_phongAlphaRHIRenderPass(new QRenderPass()) , m_phongAlphaGL3Shader(new QShaderProgram()) , m_phongAlphaGL3ShaderBuilder(new QShaderProgramBuilder()) , m_phongAlphaGL2ES2Shader(new QShaderProgram()) , m_phongAlphaGL2ES2ShaderBuilder(new QShaderProgramBuilder()) + , m_phongAlphaRHIShader(new QShaderProgram()) + , m_phongAlphaRHIShaderBuilder(new QShaderProgramBuilder()) , m_noDepthMask(new QNoDepthMask()) , m_blendState(new QBlendEquationArguments()) , m_blendEquation(new QBlendEquation()) @@ -116,6 +120,14 @@ void QPhongAlphaMaterialPrivate::init() QStringLiteral("specular"), QStringLiteral("normal")}); + m_phongAlphaRHIShader->setVertexShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/rhi/default.vert")))); + m_phongAlphaRHIShaderBuilder->setParent(q); + m_phongAlphaRHIShaderBuilder->setShaderProgram(m_phongAlphaRHIShader); + m_phongAlphaRHIShaderBuilder->setFragmentShaderGraph(QUrl(QStringLiteral("qrc:/shaders/graphs/phong.frag.json"))); + m_phongAlphaRHIShaderBuilder->setEnabledLayers({QStringLiteral("diffuse"), + QStringLiteral("specular"), + QStringLiteral("normal")}); + m_phongAlphaGL3Technique->graphicsApiFilter()->setApi(QGraphicsApiFilter::OpenGL); m_phongAlphaGL3Technique->graphicsApiFilter()->setMajorVersion(3); m_phongAlphaGL3Technique->graphicsApiFilter()->setMinorVersion(1); @@ -131,6 +143,10 @@ void QPhongAlphaMaterialPrivate::init() m_phongAlphaES2Technique->graphicsApiFilter()->setMinorVersion(0); m_phongAlphaES2Technique->graphicsApiFilter()->setProfile(QGraphicsApiFilter::NoProfile); + m_phongAlphaRHITechnique->graphicsApiFilter()->setApi(QGraphicsApiFilter::RHI); + m_phongAlphaRHITechnique->graphicsApiFilter()->setMajorVersion(1); + m_phongAlphaRHITechnique->graphicsApiFilter()->setMinorVersion(0); + m_filterKey->setParent(q); m_filterKey->setName(QStringLiteral("renderingStyle")); m_filterKey->setValue(QStringLiteral("forward")); @@ -138,6 +154,7 @@ void QPhongAlphaMaterialPrivate::init() m_phongAlphaGL3Technique->addFilterKey(m_filterKey); m_phongAlphaGL2Technique->addFilterKey(m_filterKey); m_phongAlphaES2Technique->addFilterKey(m_filterKey); + m_phongAlphaRHITechnique->addFilterKey(m_filterKey); m_blendState->setSourceRgb(QBlendEquationArguments::SourceAlpha); m_blendState->setDestinationRgb(QBlendEquationArguments::OneMinusSourceAlpha); @@ -146,6 +163,7 @@ void QPhongAlphaMaterialPrivate::init() m_phongAlphaGL3RenderPass->setShaderProgram(m_phongAlphaGL3Shader); m_phongAlphaGL2RenderPass->setShaderProgram(m_phongAlphaGL2ES2Shader); m_phongAlphaES2RenderPass->setShaderProgram(m_phongAlphaGL2ES2Shader); + m_phongAlphaRHIRenderPass->setShaderProgram(m_phongAlphaRHIShader); m_phongAlphaGL3RenderPass->addRenderState(m_noDepthMask); m_phongAlphaGL3RenderPass->addRenderState(m_blendState); @@ -159,13 +177,19 @@ void QPhongAlphaMaterialPrivate::init() m_phongAlphaES2RenderPass->addRenderState(m_blendState); m_phongAlphaES2RenderPass->addRenderState(m_blendEquation); + m_phongAlphaRHIRenderPass->addRenderState(m_noDepthMask); + m_phongAlphaRHIRenderPass->addRenderState(m_blendState); + m_phongAlphaRHIRenderPass->addRenderState(m_blendEquation); + m_phongAlphaGL3Technique->addRenderPass(m_phongAlphaGL3RenderPass); m_phongAlphaGL2Technique->addRenderPass(m_phongAlphaGL2RenderPass); m_phongAlphaES2Technique->addRenderPass(m_phongAlphaES2RenderPass); + m_phongAlphaRHITechnique->addRenderPass(m_phongAlphaRHIRenderPass); m_phongEffect->addTechnique(m_phongAlphaGL3Technique); m_phongEffect->addTechnique(m_phongAlphaGL2Technique); m_phongEffect->addTechnique(m_phongAlphaES2Technique); + m_phongEffect->addTechnique(m_phongAlphaRHITechnique); m_phongEffect->addParameter(m_ambientParameter); m_phongEffect->addParameter(m_diffuseParameter); diff --git a/src/extras/defaults/qphongalphamaterial_p.h b/src/extras/defaults/qphongalphamaterial_p.h index 97eaf7bc4..7909f4e34 100644 --- a/src/extras/defaults/qphongalphamaterial_p.h +++ b/src/extras/defaults/qphongalphamaterial_p.h @@ -94,13 +94,17 @@ public: Qt3DRender::QTechnique *m_phongAlphaGL3Technique; Qt3DRender::QTechnique *m_phongAlphaGL2Technique; Qt3DRender::QTechnique *m_phongAlphaES2Technique; + Qt3DRender::QTechnique *m_phongAlphaRHITechnique; Qt3DRender::QRenderPass *m_phongAlphaGL3RenderPass; Qt3DRender::QRenderPass *m_phongAlphaGL2RenderPass; Qt3DRender::QRenderPass *m_phongAlphaES2RenderPass; + Qt3DRender::QRenderPass *m_phongAlphaRHIRenderPass; Qt3DRender::QShaderProgram *m_phongAlphaGL3Shader; Qt3DRender::QShaderProgramBuilder *m_phongAlphaGL3ShaderBuilder; Qt3DRender::QShaderProgram *m_phongAlphaGL2ES2Shader; Qt3DRender::QShaderProgramBuilder *m_phongAlphaGL2ES2ShaderBuilder; + Qt3DRender::QShaderProgram *m_phongAlphaRHIShader; + Qt3DRender::QShaderProgramBuilder *m_phongAlphaRHIShaderBuilder; Qt3DRender::QNoDepthMask *m_noDepthMask; Qt3DRender::QBlendEquationArguments *m_blendState; Qt3DRender::QBlendEquation *m_blendEquation; 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); diff --git a/src/extras/defaults/qphongmaterial_p.h b/src/extras/defaults/qphongmaterial_p.h index f1e55242b..2d8ae1be2 100644 --- a/src/extras/defaults/qphongmaterial_p.h +++ b/src/extras/defaults/qphongmaterial_p.h @@ -91,13 +91,17 @@ public: Qt3DRender::QTechnique *m_phongGL3Technique; Qt3DRender::QTechnique *m_phongGL2Technique; Qt3DRender::QTechnique *m_phongES2Technique; + Qt3DRender::QTechnique *m_phongRHITechnique; Qt3DRender::QRenderPass *m_phongGL3RenderPass; Qt3DRender::QRenderPass *m_phongGL2RenderPass; Qt3DRender::QRenderPass *m_phongES2RenderPass; + Qt3DRender::QRenderPass *m_phongRHIRenderPass; Qt3DRender::QShaderProgram *m_phongGL3Shader; Qt3DRender::QShaderProgramBuilder *m_phongGL3ShaderBuilder; Qt3DRender::QShaderProgram *m_phongGL2ES2Shader; Qt3DRender::QShaderProgramBuilder *m_phongGL2ES2ShaderBuilder; + Qt3DRender::QShaderProgram *m_phongRHIShader; + Qt3DRender::QShaderProgramBuilder *m_phongRHIShaderBuilder; Qt3DRender::QFilterKey *m_filterKey; Q_DECLARE_PUBLIC(QPhongMaterial) diff --git a/src/extras/defaults/qt3dwindow.cpp b/src/extras/defaults/qt3dwindow.cpp index 4cf3af250..fa48dba50 100644 --- a/src/extras/defaults/qt3dwindow.cpp +++ b/src/extras/defaults/qt3dwindow.cpp @@ -183,7 +183,6 @@ Qt3DWindow::Qt3DWindow(QScreen *screen, Qt3DRender::API api) format.setProfile(QSurfaceFormat::CoreProfile); } #endif - if (!userRequestedApi.isEmpty()) { // This is used for RHI format.setVersion(1, 0); |