diff options
Diffstat (limited to 'src/quick3d/imports/scene3d')
6 files changed, 0 insertions, 154 deletions
diff --git a/src/quick3d/imports/scene3d/scene3drenderer.cpp b/src/quick3d/imports/scene3d/scene3drenderer.cpp index 49f15d6ca..d9b292cc2 100644 --- a/src/quick3d/imports/scene3d/scene3drenderer.cpp +++ b/src/quick3d/imports/scene3d/scene3drenderer.cpp @@ -9,9 +9,7 @@ #include <qopenglcontext.h> #include <qopenglframebufferobject.h> #include <QtQuick/qquickwindow.h> -#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) #include <private/qrhi_p.h> -#endif #include <Qt3DRender/private/qrenderaspect_p.h> #include <Qt3DRender/private/abstractrenderer_p.h> @@ -127,12 +125,10 @@ void Scene3DRenderer::init(Qt3DCore::QAspectEngine *aspectEngine, Qt3DRender::QRenderAspectPrivate *aspectPriv = static_cast<QRenderAspectPrivate*>(QRenderAspectPrivate::get(m_renderAspect)); Qt3DRender::Render::AbstractRenderer *renderer = aspectPriv->m_renderer; -#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) const bool isRHI = renderer->api() == API::RHI; if (isRHI) m_quickRenderer = new Scene3DRenderer::RHIRenderer; else -#endif m_quickRenderer = new Scene3DRenderer::GLRenderer; m_quickRenderer->initialize(this, renderer); } @@ -146,15 +142,10 @@ void Scene3DRenderer::setWindow(QQuickWindow *window) m_window = window; if (m_window) { -#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) QObject::connect(m_window, &QQuickWindow::beforeRendering, this, [this] () { m_quickRenderer->beforeRendering(this); }, Qt::DirectConnection); QObject::connect(m_window, &QQuickWindow::beforeRenderPassRecording, this, [this] () { m_quickRenderer->beforeRenderPassRecording(this); }, Qt::DirectConnection); -#else - QObject::connect(m_window, &QQuickWindow::beforeRendering, this, - [this] () { m_quickRenderer->beforeRenderPassRecording(this); }, Qt::DirectConnection); -#endif } else { shutdown(); } @@ -311,12 +302,7 @@ void Scene3DRenderer::GLRenderer::beforeSynchronize(Scene3DRenderer *scene3DRend if (generateNewTexture) { m_finalFBO.reset(createFramebufferObject(m_lastSize)); m_textureId = m_finalFBO->texture(); -#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) m_texture.reset(QNativeInterface::QSGOpenGLTexture::fromNative(m_textureId, window, m_finalFBO->size(), QQuickWindow::TextureHasAlphaChannel)); -#else - m_texture.reset(window->createTextureFromNativeObject(QQuickWindow::NativeObjectTexture, &m_textureId, - 0, m_finalFBO->size(), QQuickWindow::TextureHasAlphaChannel)); -#endif } // Set texture on node @@ -349,12 +335,6 @@ void Scene3DRenderer::GLRenderer::beforeRenderPassRecording(Scene3DRenderer *sce scene3DRenderer->m_shouldRender = false; ContextSaver saver; -#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) - // The OpenGL state may be dirty from the previous QtQuick nodes, so reset - // it here to give Qt3D the clean state it expects - scene3DRenderer->m_window->resetOpenGLState(); -#endif - // Create and bind FBO if using the FBO compositing mode const bool usesFBO = scene3DRenderer->m_compositingMode == Scene3DItem::FBO; if (usesFBO) { @@ -395,12 +375,6 @@ void Scene3DRenderer::GLRenderer::beforeRenderPassRecording(Scene3DRenderer *sce if (scene3DRenderer->m_node) scene3DRenderer->m_node->show(); } - -#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) - // Reset the state used by the QtQuick scenegraph to avoid any - // interference when rendering the rest of the UI - scene3DRenderer->m_window->resetOpenGLState(); -#endif } void Scene3DRenderer::GLRenderer::shutdown(Scene3DRenderer *sceneRenderer) @@ -414,8 +388,6 @@ void Scene3DRenderer::GLRenderer::shutdown(Scene3DRenderer *sceneRenderer) m_multisampledFBO.reset(); } -#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) - void Scene3DRenderer::RHIRenderer::initialize(Scene3DRenderer *scene3DRenderer, Qt3DRender::Render::AbstractRenderer *renderer) { @@ -619,8 +591,6 @@ void Scene3DRenderer::RHIRenderer::releaseRHIResources() m_rhiRenderTargetPassDescriptor = nullptr; } -#endif - Scene3DRenderer::QuickRenderer::QuickRenderer() {} Scene3DRenderer::QuickRenderer::~QuickRenderer() {} diff --git a/src/quick3d/imports/scene3d/scene3drenderer_p.h b/src/quick3d/imports/scene3d/scene3drenderer_p.h index c6f5b7c31..f131c7525 100644 --- a/src/quick3d/imports/scene3d/scene3drenderer_p.h +++ b/src/quick3d/imports/scene3d/scene3drenderer_p.h @@ -123,7 +123,6 @@ private: quint32 m_textureId = 0; }; -#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) class RHIRenderer : public QuickRenderer { public: @@ -146,7 +145,6 @@ private: QRhiRenderPassDescriptor *m_rhiRenderTargetPassDescriptor = nullptr; QRhi *m_rhi = nullptr; }; -#endif Qt3DCore::QAspectEngine *m_aspectEngine; // Will be released by the Scene3DItem QRenderAspect *m_renderAspect; // Will be released by the aspectEngine diff --git a/src/quick3d/imports/scene3d/scene3dsgmaterial.cpp b/src/quick3d/imports/scene3d/scene3dsgmaterial.cpp index 02f306a99..0d1ea7384 100644 --- a/src/quick3d/imports/scene3d/scene3dsgmaterial.cpp +++ b/src/quick3d/imports/scene3d/scene3dsgmaterial.cpp @@ -28,15 +28,9 @@ Scene3DSGMaterial::Scene3DSGMaterial() { } -#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) QSGMaterialShader *Scene3DSGMaterial::createShader(QSGRendererInterface::RenderMode renderMode) const -#else -QSGMaterialShader *Scene3DSGMaterial::createShader() const -#endif { -#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) Q_UNUSED(renderMode); -#endif return new Scene3DSGMaterialShader(); } diff --git a/src/quick3d/imports/scene3d/scene3dsgmaterial_p.h b/src/quick3d/imports/scene3d/scene3dsgmaterial_p.h index 605bba9b3..b84f55f26 100644 --- a/src/quick3d/imports/scene3d/scene3dsgmaterial_p.h +++ b/src/quick3d/imports/scene3d/scene3dsgmaterial_p.h @@ -37,11 +37,7 @@ public: QSGTexture *texture() const noexcept { return m_texture; } QSGMaterialType *type() const final { return &Scene3DSGMaterialShader::type; } -#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) QSGMaterialShader *createShader(QSGRendererInterface::RenderMode renderMode) const final; -#else - QSGMaterialShader *createShader() const final; -#endif void show() { m_visible = true; } bool visible() const { return m_visible; } diff --git a/src/quick3d/imports/scene3d/scene3dsgmaterialshader.cpp b/src/quick3d/imports/scene3d/scene3dsgmaterialshader.cpp index 8d8ae04e7..12d396735 100644 --- a/src/quick3d/imports/scene3d/scene3dsgmaterialshader.cpp +++ b/src/quick3d/imports/scene3d/scene3dsgmaterialshader.cpp @@ -42,13 +42,10 @@ Scene3DSGMaterialShader::Scene3DSGMaterialShader() // Generated with qsb, we target all GL version Qt3D can handle // qsb -b --glsl "460,450,440,430,420,410,400,330,150,120,320 es,300 es,100 es" --hlsl 50 --msl 12 -o scene3dmaterial.vert.qsb scene3dmaterial.vert // qsb --glsl "460,450,440,430,420,410,400,330,150,120,320 es,300 es,100 es" --hlsl 50 --msl 12 -o scene3dmaterial.frag.qsb scene3dmaterial.frag -#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) setShaderFileName(VertexStage, QLatin1String(":/shaders/scene3dmaterial.vert.qsb")); setShaderFileName(FragmentStage, QLatin1String(":/shaders/scene3dmaterial.frag.qsb")); -#endif } -#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) bool Scene3DSGMaterialShader::updateUniformData(QSGMaterialShader::RenderState &state, QSGMaterial *newMaterial, QSGMaterial *oldMaterial) @@ -118,100 +115,6 @@ void Scene3DSGMaterialShader::updateSampledImage(QSGMaterialShader::RenderState } } -#else - -const char * const *Qt3DRender::Scene3DSGMaterialShader::attributeNames() const -{ - static char const *const attr[] = { "qt_VertexPosition", "qt_VertexTexCoord", nullptr }; - return attr; -} - -const char *Scene3DSGMaterialShader::vertexShader() const -{ - QOpenGLContext *ctx = QOpenGLContext::currentContext(); - if (ctx->format().version() >= qMakePair(3, 2) && ctx->format().profile() == QSurfaceFormat::CoreProfile) { - return "" - "#version 150 core \n" - "uniform mat4 qt_Matrix; \n" - "in vec4 qt_VertexPosition; \n" - "in vec2 qt_VertexTexCoord; \n" - "out vec2 qt_TexCoord; \n" - "void main() { \n" - " qt_TexCoord = qt_VertexTexCoord; \n" - " gl_Position = qt_Matrix * qt_VertexPosition; \n" - "}"; - } else { - return "" - "uniform highp mat4 qt_Matrix; \n" - "attribute highp vec4 qt_VertexPosition; \n" - "attribute highp vec2 qt_VertexTexCoord; \n" - "varying highp vec2 qt_TexCoord; \n" - "void main() { \n" - " qt_TexCoord = qt_VertexTexCoord; \n" - " gl_Position = qt_Matrix * qt_VertexPosition; \n" - "}"; - } -} -const char *Scene3DSGMaterialShader::fragmentShader() const -{ - QOpenGLContext *ctx = QOpenGLContext::currentContext(); - if (ctx->format().version() >= qMakePair(3, 2) && ctx->format().profile() == QSurfaceFormat::CoreProfile) { - return "" - "#version 150 core \n" - "uniform sampler2D source; \n" - "uniform float qt_Opacity; \n" - "in vec2 qt_TexCoord; \n" - "out vec4 fragColor; \n" - "void main() { \n" - " vec4 p = texture(source, qt_TexCoord); \n" - " float a = qt_Opacity * p.a; \n" - " fragColor = vec4(p.rgb * a, a); \n" - "}"; - } else { - return "" - "uniform highp sampler2D source; \n" - "uniform highp float qt_Opacity; \n" - "varying highp vec2 qt_TexCoord; \n" - "void main() { \n" - " highp vec4 p = texture2D(source, qt_TexCoord); \n" - " highp float a = qt_Opacity * p.a; \n" - " gl_FragColor = vec4(p.rgb * a, a); \n" - "}"; - } -} -void Scene3DSGMaterialShader::initialize() -{ - m_matrixId = program()->uniformLocation("qt_Matrix"); - m_opacityId = program()->uniformLocation("qt_Opacity"); -} -void Scene3DSGMaterialShader::updateState(const RenderState &state, QSGMaterial *newEffect, QSGMaterial *oldEffect) -{ - Q_ASSERT(oldEffect == 0 || newEffect->type() == oldEffect->type()); - Scene3DSGMaterial *tx = static_cast<Scene3DSGMaterial *>(newEffect); - Scene3DSGMaterial *oldTx = static_cast<Scene3DSGMaterial *>(oldEffect); - QSGTexture *t = tx->texture(); - bool npotSupported = const_cast<QOpenGLContext *>(state.context()) - ->functions()->hasOpenGLFeature(QOpenGLFunctions::NPOTTextureRepeat); - if (!npotSupported) { - QSize size = t->textureSize(); - const bool isNpot = !isPowerOfTwo(size.width()) || !isPowerOfTwo(size.height()); - if (isNpot) { - t->setHorizontalWrapMode(QSGTexture::ClampToEdge); - t->setVerticalWrapMode(QSGTexture::ClampToEdge); - } - } - if (oldTx == 0 || oldTx->texture()->textureId() != t->textureId()) - t->bind(); - else - t->updateBindOptions(); - if (state.isMatrixDirty()) - program()->setUniformValue(m_matrixId, state.combinedMatrix()); - if (state.isOpacityDirty()) - program()->setUniformValue(m_opacityId, state.opacity()); -} - -#endif - } // namespace Qt3DRender QT_END_NAMESPACE diff --git a/src/quick3d/imports/scene3d/scene3dsgmaterialshader_p.h b/src/quick3d/imports/scene3d/scene3dsgmaterialshader_p.h index 64984f32b..ce02a8608 100644 --- a/src/quick3d/imports/scene3d/scene3dsgmaterialshader_p.h +++ b/src/quick3d/imports/scene3d/scene3dsgmaterialshader_p.h @@ -29,23 +29,8 @@ public: protected: // QSGMaterialShader interface -#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) bool updateUniformData(RenderState &state, QSGMaterial *newMaterial, QSGMaterial *oldMaterial) final; void updateSampledImage(RenderState &state, int binding, QSGTexture **texture, QSGMaterial *newMaterial, QSGMaterial *oldMaterial) final; -#else -public: - char const *const *attributeNames() const final; - void updateState(const RenderState &state, QSGMaterial *newMaterial, QSGMaterial *oldMaterial) final; - -protected: - const char *vertexShader() const final; - const char *fragmentShader() const final; - void initialize() final; - -private: - int m_matrixId = -1; - int m_opacityId = -1; -#endif }; } // namespace Qt3DRender |