summaryrefslogtreecommitdiffstats
path: root/src/quick3d/imports/scene3d
diff options
context:
space:
mode:
Diffstat (limited to 'src/quick3d/imports/scene3d')
-rw-r--r--src/quick3d/imports/scene3d/scene3drenderer.cpp30
-rw-r--r--src/quick3d/imports/scene3d/scene3drenderer_p.h2
-rw-r--r--src/quick3d/imports/scene3d/scene3dsgmaterial.cpp6
-rw-r--r--src/quick3d/imports/scene3d/scene3dsgmaterial_p.h4
-rw-r--r--src/quick3d/imports/scene3d/scene3dsgmaterialshader.cpp97
-rw-r--r--src/quick3d/imports/scene3d/scene3dsgmaterialshader_p.h15
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