diff options
Diffstat (limited to 'src/extras/defaults/qskyboxentity.cpp')
-rw-r--r-- | src/extras/defaults/qskyboxentity.cpp | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/src/extras/defaults/qskyboxentity.cpp b/src/extras/defaults/qskyboxentity.cpp index 8f9718465..273c5724d 100644 --- a/src/extras/defaults/qskyboxentity.cpp +++ b/src/extras/defaults/qskyboxentity.cpp @@ -22,11 +22,12 @@ QT_BEGIN_NAMESPACE -using namespace Qt3DCore; -using namespace Qt3DRender; namespace Qt3DExtras { +using namespace Qt3DCore; +using namespace Qt3DRender; + QSkyboxEntityPrivate::QSkyboxEntityPrivate() : QEntityPrivate() , m_effect(new QEffect()) @@ -35,13 +36,16 @@ QSkyboxEntityPrivate::QSkyboxEntityPrivate() , m_loadedTexture(new QTextureLoader()) , m_gl3Shader(new QShaderProgram()) , m_gl2es2Shader(new QShaderProgram()) + , m_rhiShader(new QShaderProgram()) , m_gl2Technique(new QTechnique()) , m_es2Technique(new QTechnique()) , m_gl3Technique(new QTechnique()) + , m_rhiTechnique(new QTechnique()) , m_filterKey(new QFilterKey) , m_gl2RenderPass(new QRenderPass()) , m_es2RenderPass(new QRenderPass()) , m_gl3RenderPass(new QRenderPass()) + , m_rhiRenderPass(new QRenderPass()) , m_mesh(new QCuboidMesh()) , m_gammaStrengthParameter(new QParameter(QStringLiteral("gammaStrength"), 0.0f)) , m_textureParameter(new QParameter(QStringLiteral("skyboxTexture"), m_skyboxTexture)) @@ -66,6 +70,8 @@ void QSkyboxEntityPrivate::init() m_gl3Shader->setFragmentShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/gl3/skybox.frag")))); m_gl2es2Shader->setVertexShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/es2/skybox.vert")))); m_gl2es2Shader->setFragmentShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/es2/skybox.frag")))); + m_rhiShader->setVertexShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/rhi/skybox.vert")))); + m_rhiShader->setFragmentShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/rhi/skybox.frag")))); m_gl3Technique->graphicsApiFilter()->setApi(QGraphicsApiFilter::OpenGL); m_gl3Technique->graphicsApiFilter()->setMajorVersion(3); @@ -82,6 +88,10 @@ void QSkyboxEntityPrivate::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_filterKey->setParent(m_effect); m_filterKey->setName(QStringLiteral("renderingStyle")); m_filterKey->setValue(QStringLiteral("forward")); @@ -89,10 +99,12 @@ void QSkyboxEntityPrivate::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); QCullFace *cullFront = new QCullFace(); cullFront->setMode(QCullFace::Front); @@ -107,14 +119,18 @@ void QSkyboxEntityPrivate::init() m_gl2RenderPass->addRenderState(depthTest); m_es2RenderPass->addRenderState(cullFront); m_es2RenderPass->addRenderState(depthTest); + m_rhiRenderPass->addRenderState(cullFront); + m_rhiRenderPass->addRenderState(depthTest); 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_material->setEffect(m_effect); m_material->addParameter(m_gammaStrengthParameter); @@ -253,7 +269,7 @@ void QSkyboxEntity::setBaseName(const QString &baseName) } } /*! - \property QSkyboxEntity::baseName + \property Qt3DExtras::QSkyboxEntity::baseName Contains the base name of the Skybox. */ @@ -285,7 +301,7 @@ void QSkyboxEntity::setExtension(const QString &extension) } /*! - \property QSkyboxEntity::extension + \property Qt3DExtras::QSkyboxEntity::extension Contains the extension of the filename for the skybox image, including the leading '.'. @@ -336,7 +352,7 @@ bool QSkyboxEntity::isGammaCorrectEnabled() const } // namespace Qt3DExtras /*! - \property QSkyboxEntity::gammaCorrect + \property Qt3DExtras::QSkyboxEntity::gammaCorrect A boolean indicating whether gamma correction is enabled. \since 5.9 |