diff options
author | Kaj Grönholm <kaj.gronholm@qt.io> | 2020-03-09 08:07:25 +0200 |
---|---|---|
committer | Kaj Grönholm <kaj.gronholm@qt.io> | 2020-03-11 16:04:32 +0200 |
commit | a77e066c15472dafa238c65e42c251592f61af0c (patch) | |
tree | 5b58e50107dfd143fdc0abc6352de0b4a8d6ab0c | |
parent | 2854634d0bfb8438a1a3b2cd1d0aa2a1f4b5c603 (diff) |
Remove unused widget related codev5.15.0-beta2
Removing also some other leftovers from QSSGRendererImpl
Task-number: QTBUG-82740
Change-Id: If6b5e8ff9be233557843c70d27d80df6099de7dc
Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
Reviewed-by: Antti Määttä <antti.maatta@qt.io>
Reviewed-by: Christian Strømme <christian.stromme@qt.io>
-rw-r--r-- | src/runtimerender/qssgrenderer_p.h | 6 | ||||
-rw-r--r-- | src/runtimerender/rendererimpl/qssgrendererimpl.cpp | 161 | ||||
-rw-r--r-- | src/runtimerender/rendererimpl/qssgrendererimpl_p.h | 68 | ||||
-rw-r--r-- | src/runtimerender/rendererimpl/qssgrendererimplshaders.cpp | 43 | ||||
-rw-r--r-- | src/runtimerender/rendererimpl/qssgrendererimplshaders_p.h | 21 |
5 files changed, 1 insertions, 298 deletions
diff --git a/src/runtimerender/qssgrenderer_p.h b/src/runtimerender/qssgrenderer_p.h index 870eaba1..cbf5b7fb 100644 --- a/src/runtimerender/qssgrenderer_p.h +++ b/src/runtimerender/qssgrenderer_p.h @@ -92,8 +92,6 @@ class Q_QUICK3DRUNTIMERENDER_EXPORT QSSGRendererInterface public: QAtomicInt ref; virtual ~QSSGRendererInterface() {} - virtual void enableLayerCaching(bool inEnabled) = 0; - virtual bool isLayerCachingEnabled() const = 0; virtual void enableLayerGpuProfiling(bool inEnabled) = 0; virtual bool isLayerGpuProfilingEnabled() const = 0; @@ -113,10 +111,6 @@ public: // to an image. virtual void renderQuad() = 0; - // Render a given texture to the scene using a given transform. - virtual void renderQuad(const QVector2D &inDimensions, - const QMatrix4x4 &inMVP, - QSSGRenderTexture2D &inQuadTexture) = 0; // Render a given texture as flipped to the scene using a given transform. virtual void renderFlippedQuad(const QVector2D &inDimensions, const QMatrix4x4 &inMVP, diff --git a/src/runtimerender/rendererimpl/qssgrendererimpl.cpp b/src/runtimerender/rendererimpl/qssgrendererimpl.cpp index 2c92e67a..40ec6bbf 100644 --- a/src/runtimerender/rendererimpl/qssgrendererimpl.cpp +++ b/src/runtimerender/rendererimpl/qssgrendererimpl.cpp @@ -85,7 +85,6 @@ QSSGRendererImpl::QSSGRendererImpl(QSSGRenderContextInterface *ctx) , m_bufferManager(ctx->bufferManager()) , m_currentLayer(nullptr) , m_pickRenderPlugins(true) - , m_layerCachingEnabled(true) , m_layerGPuProfilingEnabled(false) , m_progressiveAARenderRequest(false) { @@ -335,35 +334,6 @@ void QSSGRendererImpl::drawScreenRect(QRectF inRect, const QVector3D &inColor) m_context->draw(QSSGRenderDrawMode::Lines, m_rectIndexBuffer->numIndices(), 0); } -void QSSGRendererImpl::setupWidgetLayer() -{ - const QSSGRef<QSSGRenderContext> &theContext = m_contextInterface->renderContext(); - - if (!m_widgetTexture) { - const QSSGRef<QSSGResourceManager> &theManager = m_contextInterface->resourceManager(); - m_widgetTexture = theManager->allocateTexture2D(m_beginFrameViewport.width(), - m_beginFrameViewport.height(), - QSSGRenderTextureFormat::RGBA8); - m_widgetFbo = theManager->allocateFrameBuffer(); - m_widgetFbo->attach(QSSGRenderFrameBufferAttachment::Color0, QSSGRenderTextureOrRenderBuffer(m_widgetTexture)); - theContext->setRenderTarget(m_widgetFbo); - - // QSSGRenderRect theScissorRect( 0, 0, m_BeginFrameViewport.m_Width, - // m_BeginFrameViewport.m_Height ); - // QSSGRenderContextScopedProperty<QSSGRenderRect> __scissorRect( theContext, - // &QSSGRenderContext::GetScissorRect, &QSSGRenderContext::SetScissorRect, theScissorRect ); - QSSGRenderContextScopedProperty<bool> __scissorEnabled(*theContext, - &QSSGRenderContext::isScissorTestEnabled, - &QSSGRenderContext::setScissorTestEnabled, - false); - m_context->setClearColor(QVector4D(0, 0, 0, 0)); - m_context->clear(QSSGRenderClearValues::Color); - - } else { - theContext->setRenderTarget(m_widgetFbo); - } -} - void QSSGRendererImpl::addMaterialDirtyClear(QSSGRenderGraphObject *material) { m_materialClearDirty.insert(material); @@ -374,7 +344,6 @@ void QSSGRendererImpl::beginFrame() for (int idx = 0, end = m_lastFrameLayers.size(); idx < end; ++idx) m_lastFrameLayers[idx]->resetForFrame(); m_lastFrameLayers.clear(); - m_beginFrameViewport = m_contextInterface->viewport(); for (auto *matObj : qAsConst(m_materialClearDirty)) { if (matObj->type == QSSGRenderGraphObject::Type::CustomMaterial) static_cast<QSSGRenderCustomMaterial *>(matObj)->updateDirtyForFrame(); @@ -385,39 +354,6 @@ void QSSGRendererImpl::beginFrame() } void QSSGRendererImpl::endFrame() { - if (m_widgetTexture) { - // Releasing the widget FBO can set it as the active frame buffer. - QSSGRenderContextScopedProperty<const QSSGRef<QSSGRenderFrameBuffer> &> __fbo(*m_context, - &QSSGRenderContext::renderTarget, - &QSSGRenderContext::setRenderTarget); - QSSGTextureDetails theDetails = m_widgetTexture->textureDetails(); - m_context->setBlendingEnabled(true); - // Colors are expected to be non-premultiplied, so we premultiply alpha into them at - // this point. - m_context->setBlendFunction(QSSGRenderBlendFunctionArgument(QSSGRenderSrcBlendFunc::One, - QSSGRenderDstBlendFunc::OneMinusSrcAlpha, - QSSGRenderSrcBlendFunc::One, - QSSGRenderDstBlendFunc::OneMinusSrcAlpha)); - m_context->setBlendEquation(QSSGRenderBlendEquationArgument(QSSGRenderBlendEquation::Add, QSSGRenderBlendEquation::Add)); - - m_context->setDepthTestEnabled(false); - m_context->setScissorTestEnabled(false); - m_context->setViewport(m_beginFrameViewport); - QSSGRenderCamera theCamera; - theCamera.markDirty(QSSGRenderCamera::TransformDirtyFlag::TransformIsDirty); - theCamera.flags.setFlag(QSSGRenderCamera::Flag::Orthographic); - QVector2D theTextureDims(float(theDetails.width), float(theDetails.height)); - theCamera.calculateGlobalVariables(QRectF(0, 0, theDetails.width, theDetails.height)); - QMatrix4x4 theViewProj; - theCamera.calculateViewProjectionMatrix(theViewProj); - renderQuad(theTextureDims, theViewProj, *m_widgetTexture); - - const QSSGRef<QSSGResourceManager> &theManager(m_contextInterface->resourceManager()); - theManager->release(m_widgetFbo); - theManager->release(m_widgetTexture); - m_widgetTexture = nullptr; - m_widgetFbo = nullptr; - } } inline bool pickResultLessThan(const QSSGRenderPickResult &lhs, const QSSGRenderPickResult &rhs) @@ -764,20 +700,6 @@ void QSSGRendererImpl::releaseLayerRenderResources(QSSGRenderLayer &inLayer) } } -void QSSGRendererImpl::renderQuad(const QVector2D &inDimensions, const QMatrix4x4 &inMVP, QSSGRenderTexture2D &inQuadTexture) -{ - m_context->setCullingEnabled(false); - QSSGRef<QSSGLayerSceneShader> theShader = getSceneLayerShader(); - m_context->setActiveShader(theShader->shader); - theShader->mvp.set(inMVP); - theShader->dimensions.set(inDimensions); - theShader->sampler.set(&inQuadTexture); - - generateXYQuad(); - m_context->setInputAssembler(m_quadInputAssembler); - m_context->draw(QSSGRenderDrawMode::Triangles, m_quadIndexBuffer->numIndices(), 0); -} - void QSSGRendererImpl::renderQuad() { m_context->setCullingEnabled(false); @@ -1254,94 +1176,11 @@ void QSSGRendererImpl::updateCbAoShadow(const QSSGRenderLayer *pLayer, const QSS } } -// widget context implementation - -QSSGRef<QSSGRenderVertexBuffer> QSSGRendererImpl::getOrCreateVertexBuffer(const QByteArray &inStr, - quint32 stride, - QSSGByteView bufferData) -{ - const QSSGRef<QSSGRenderVertexBuffer> &retval = getVertexBuffer(inStr); - if (retval) { - // we update the buffer - retval->updateBuffer(bufferData); - return retval; - } - - return *m_widgetVertexBuffers.insert(inStr, new QSSGRenderVertexBuffer(m_context, QSSGRenderBufferUsageType::Dynamic, stride, bufferData)); -} -QSSGRef<QSSGRenderIndexBuffer> QSSGRendererImpl::getOrCreateIndexBuffer(const QByteArray &inStr, - QSSGRenderComponentType componentType, - QSSGByteView bufferData) -{ - const QSSGRef<QSSGRenderIndexBuffer> &retval = getIndexBuffer(inStr); - if (retval) { - // we update the buffer - retval->updateBuffer(bufferData); - return retval; - } - - return *m_widgetIndexBuffers.insert(inStr, new QSSGRenderIndexBuffer(m_context, QSSGRenderBufferUsageType::Dynamic, componentType, bufferData)); -} - -QSSGRef<QSSGRenderAttribLayout> QSSGRendererImpl::createAttributeLayout(QSSGDataView<QSSGRenderVertexBufferEntry> attribs) -{ - // create our attribute layout - return m_context->createAttributeLayout(attribs); -} -QSSGRef<QSSGRenderInputAssembler> QSSGRendererImpl::getOrCreateInputAssembler(const QByteArray &inStr, - const QSSGRef<QSSGRenderAttribLayout> &attribLayout, - QSSGDataView<QSSGRef<QSSGRenderVertexBuffer>> buffers, - const QSSGRef<QSSGRenderIndexBuffer> &indexBuffer, - QSSGDataView<quint32> strides, - QSSGDataView<quint32> offsets) -{ - const QSSGRef<QSSGRenderInputAssembler> &retval = getInputAssembler(inStr); - if (retval) - return retval; - return *m_widgetInputAssembler.insert(inStr, m_context->createInputAssembler(attribLayout, buffers, indexBuffer, strides, offsets)); -} -QSSGRef<QSSGRenderVertexBuffer> QSSGRendererImpl::getVertexBuffer(const QByteArray &inStr) const -{ - const auto theIter = m_widgetVertexBuffers.constFind(inStr); - if (theIter != m_widgetVertexBuffers.cend()) - return theIter.value(); - return nullptr; -} -QSSGRef<QSSGRenderIndexBuffer> QSSGRendererImpl::getIndexBuffer(const QByteArray &inStr) const -{ - const auto theIter = m_widgetIndexBuffers.constFind(inStr); - if (theIter != m_widgetIndexBuffers.cend()) - return theIter.value(); - return nullptr; -} - -QSSGRef<QSSGRenderInputAssembler> QSSGRendererImpl::getInputAssembler(const QByteArray &inStr) const -{ - const auto theIter = m_widgetInputAssembler.constFind(inStr); - if (theIter != m_widgetInputAssembler.cend()) - return theIter.value(); - return nullptr; -} -QSSGRef<QSSGRenderShaderProgram> QSSGRendererImpl::getShader(const QByteArray &inStr) const -{ - const auto theIter = m_widgetShaders.constFind(inStr); - if (theIter != m_widgetShaders.cend()) - return theIter.value(); - return nullptr; -} - -QSSGRef<QSSGRenderShaderProgram> QSSGRendererImpl::compileAndStoreShader(const QByteArray &inStr) -{ - const QSSGRef<QSSGRenderShaderProgram> &newProgram = getProgramGenerator()->compileGeneratedShader(inStr); - if (newProgram) - m_widgetShaders.insert(inStr, newProgram); - return newProgram; -} const QSSGRef<QSSGShaderProgramGeneratorInterface> &QSSGRendererImpl::getProgramGenerator() { diff --git a/src/runtimerender/rendererimpl/qssgrendererimpl_p.h b/src/runtimerender/rendererimpl/qssgrendererimpl_p.h index 562bfbe7..2f2d6cc1 100644 --- a/src/runtimerender/rendererimpl/qssgrendererimpl_p.h +++ b/src/runtimerender/rendererimpl/qssgrendererimpl_p.h @@ -87,28 +87,13 @@ class Q_QUICK3DRUNTIMERENDER_EXPORT QSSGRendererImpl : public QSSGRendererInterf typedef QVector<QSSGLayerRenderData *> TLayerRenderList; typedef QVector<QSSGRenderPickResult> TPickResultArray; - // Items to implement the widget context. - typedef QHash<QByteArray, QSSGRef<QSSGRenderVertexBuffer>> TStrVertBufMap; - typedef QHash<QByteArray, QSSGRef<QSSGRenderIndexBuffer>> TStrIndexBufMap; - typedef QHash<QByteArray, QSSGRef<QSSGRenderShaderProgram>> TStrShaderMap; - typedef QHash<QByteArray, QSSGRef<QSSGRenderInputAssembler>> TStrIAMap; - - typedef QHash<long, QSSGRenderNode *> TBoneIdNodeMap; - using PickResultList = QVarLengthArray<QSSGRenderPickResult, 20>; // Lets assume most items are filtered out already QSSGRenderContextInterface *m_contextInterface; // We're own by the context interface const QSSGRef<QSSGRenderContext> &m_context; const QSSGRef<QSSGBufferManager> &m_bufferManager; - // For rendering bounding boxes. - QSSGRef<QSSGRenderVertexBuffer> m_boxVertexBuffer; - QSSGRef<QSSGRenderIndexBuffer> m_boxIndexBuffer; - QSSGRef<QSSGRenderShaderProgram> m_boxShader; QSSGRef<QSSGRenderShaderProgram> m_screenRectShader; - QSSGRef<QSSGRenderVertexBuffer> m_axisVertexBuffer; - QSSGRef<QSSGRenderShaderProgram> m_axisShader; - // X,Y quad, broken down into 2 triangles and normalized over //-1,1. QSSGRef<QSSGRenderVertexBuffer> m_quadVertexBuffer; @@ -129,7 +114,6 @@ class Q_QUICK3DRUNTIMERENDER_EXPORT QSSGRendererImpl : public QSSGRendererInterf QSSGRef<QSSGRenderInputAssembler> m_pointInputAssembler; QSSGRef<QSSGRenderAttribLayout> m_pointAttribLayout; - QSSGRef<QSSGLayerSceneShader> m_sceneLayerShader; QSSGRef<QSSGFlippedQuadShader> m_flippedQuadShader; QSSGRef<QSSGLayerProgAABlendShader> m_layerProgAAShader; QSSGRef<QSSGLayerLastFrameBlendShader> m_layerLastFrameBlendShader; @@ -148,8 +132,6 @@ class Q_QUICK3DRUNTIMERENDER_EXPORT QSSGRendererImpl : public QSSGRendererInterf QSSGRef<QSSGRenderableDepthPrepassShader> m_depthTessNPatchPrepassShader; QSSGRef<QSSGSkyBoxShader> m_skyBoxShader; QSSGRef<QSSGDefaultAoPassShader> m_defaultAoPassShader; - QSSGRef<QSSGDefaultAoPassShader> m_fakeDepthShader; - QSSGRef<QSSGDefaultAoPassShader> m_fakeCubemapDepthShader; QSSGRef<QSSGRenderableDepthPrepassShader> m_paraboloidDepthShader; QSSGRef<QSSGRenderableDepthPrepassShader> m_paraboloidDepthTessLinearShader; QSSGRef<QSSGRenderableDepthPrepassShader> m_paraboloidDepthTessPhongShader; @@ -167,11 +149,6 @@ class Q_QUICK3DRUNTIMERENDER_EXPORT QSSGRendererImpl : public QSSGRendererInterf QSSGRef<QSSGShadowmapPreblurShader> m_orthoShadowBlurXShader; QSSGRef<QSSGShadowmapPreblurShader> m_orthoShadowBlurYShader; - // Overlay used to render all widgets. - QRect m_beginFrameViewport; - QSSGRef<QSSGRenderTexture2D> m_widgetTexture; - QSSGRef<QSSGRenderFrameBuffer> m_widgetFbo; - // Allocator for temporary data that is cleared after every layer. TInstanceRenderMap m_instanceRenderMap; TLayerRenderList m_lastFrameLayers; @@ -184,15 +161,7 @@ class Q_QUICK3DRUNTIMERENDER_EXPORT QSSGRendererImpl : public QSSGRendererInterf QMatrix4x4 m_viewProjection; QByteArray m_generatedShaderString; - TStrVertBufMap m_widgetVertexBuffers; - TStrIndexBufMap m_widgetIndexBuffers; - TStrShaderMap m_widgetShaders; - TStrIAMap m_widgetInputAssembler; - - TBoneIdNodeMap m_boneIdNodeMap; - bool m_pickRenderPlugins; - bool m_layerCachingEnabled; bool m_layerGPuProfilingEnabled; bool m_progressiveAARenderRequest; QSSGShaderDefaultMaterialKeyProperties m_defaultMaterialShaderKeyProperties; @@ -207,9 +176,6 @@ public: return m_defaultMaterialShaderKeyProperties; } - void enableLayerCaching(bool inEnabled) override { m_layerCachingEnabled = inEnabled; } - bool isLayerCachingEnabled() const override { return m_layerCachingEnabled; } - void enableLayerGpuProfiling(bool inEnabled) override { m_layerGPuProfilingEnabled = inEnabled; } bool isLayerGpuProfilingEnabled() const override { return m_layerGPuProfilingEnabled; } @@ -266,9 +232,6 @@ public: void releaseLayerRenderResources(QSSGRenderLayer &inLayer) override; - void renderQuad(const QVector2D &inDimensions, - const QMatrix4x4 &inMVP, - QSSGRenderTexture2D &inQuadTexture) override; void renderQuad() override; void renderFlippedQuad(const QVector2D &inDimensions, @@ -296,9 +259,6 @@ public: QSSGRef<QSSGSkyBoxShader> getSkyBoxShader(); QSSGRef<QSSGDefaultAoPassShader> getDefaultAoPassShader(const ShaderFeatureSetList &inFeatureSet); - QSSGRef<QSSGDefaultAoPassShader> getFakeDepthShader(const ShaderFeatureSetList &inFeatureSet); - QSSGRef<QSSGDefaultAoPassShader> getFakeCubeDepthShader(const ShaderFeatureSetList &inFeatureSet); - QSSGRef<QSSGDefaultMaterialRenderableDepthShader> getRenderableDepthShader(); QSSGRef<QSSGRenderableDepthPrepassShader> getParaboloidDepthShader(TessellationModeValues inTessMode); QSSGRef<QSSGRenderableDepthPrepassShader> getCubeShadowDepthShader(TessellationModeValues inTessMode); @@ -326,7 +286,6 @@ public: const QSSGRef<QSSGRenderableDepthPrepassShader> &getDepthTessLinearPrepassShader(bool inDisplaced); const QSSGRef<QSSGRenderableDepthPrepassShader> &getDepthTessPhongPrepassShader(); const QSSGRef<QSSGRenderableDepthPrepassShader> &getDepthTessNPatchPrepassShader(); - QSSGRef<QSSGLayerSceneShader> getSceneLayerShader(); QSSGRef<QSSGFlippedQuadShader> getFlippedQuadShader(); QSSGRef<QSSGRenderShaderProgram> getTextAtlasEntryShader(); void generateXYQuad(); @@ -351,32 +310,7 @@ public: QSSGRenderContextInterface *contextInterface() { return m_contextInterface; } void drawScreenRect(QRectF inRect, const QVector3D &inColor); - // Binds an offscreen texture. Widgets are rendered last. - void setupWidgetLayer(); - - // widget context implementation - QSSGRef<QSSGRenderVertexBuffer> getOrCreateVertexBuffer( - const QByteArray &inStr, - quint32 stride, - QSSGByteView bufferData = QSSGByteView()); - QSSGRef<QSSGRenderIndexBuffer> getOrCreateIndexBuffer( - const QByteArray &inStr, - QSSGRenderComponentType componentType, - QSSGByteView bufferData = QSSGByteView()); - QSSGRef<QSSGRenderAttribLayout> createAttributeLayout(QSSGDataView<QSSGRenderVertexBufferEntry> attribs); - QSSGRef<QSSGRenderInputAssembler> getOrCreateInputAssembler(const QByteArray &inStr, - const QSSGRef<QSSGRenderAttribLayout> &attribLayout, - QSSGDataView<QSSGRef<QSSGRenderVertexBuffer>> buffers, - const QSSGRef<QSSGRenderIndexBuffer> &indexBuffer, - QSSGDataView<quint32> strides, - QSSGDataView<quint32> offsets); - - QSSGRef<QSSGRenderVertexBuffer> getVertexBuffer(const QByteArray &inStr) const; - QSSGRef<QSSGRenderIndexBuffer> getIndexBuffer(const QByteArray &inStr) const; - QSSGRef<QSSGRenderInputAssembler> getInputAssembler(const QByteArray &inStr) const; - - QSSGRef<QSSGRenderShaderProgram> getShader(const QByteArray &inStr) const; - QSSGRef<QSSGRenderShaderProgram> compileAndStoreShader(const QByteArray &inStr); + const QSSGRef<QSSGShaderProgramGeneratorInterface> &getProgramGenerator(); QSSGOption<QVector2D> getLayerMouseCoords(QSSGRenderLayer &inLayer, diff --git a/src/runtimerender/rendererimpl/qssgrendererimplshaders.cpp b/src/runtimerender/rendererimpl/qssgrendererimplshaders.cpp index f158bad7..a5fc1993 100644 --- a/src/runtimerender/rendererimpl/qssgrendererimplshaders.cpp +++ b/src/runtimerender/rendererimpl/qssgrendererimplshaders.cpp @@ -1777,49 +1777,6 @@ QSSGRef<QSSGRenderShaderProgram> QSSGRendererImpl::getTextAtlasEntryShader() return getProgramGenerator()->compileGeneratedShader("texture atlas entry shader", QSSGShaderCacheProgramFlags(), ShaderFeatureSetList()); } -QSSGRef<QSSGLayerSceneShader> QSSGRendererImpl::getSceneLayerShader() -{ - if (m_sceneLayerShader) - return m_sceneLayerShader; - - getProgramGenerator()->beginProgram(); - - QSSGShaderStageGeneratorInterface &vertexGenerator(*getProgramGenerator()->getStage(QSSGShaderGeneratorStage::Vertex)); - QSSGShaderStageGeneratorInterface &fragmentGenerator(*getProgramGenerator()->getStage(QSSGShaderGeneratorStage::Fragment)); - - vertexGenerator.addIncoming("attr_pos", "vec3"); - vertexGenerator.addIncoming("attr_uv", "vec2"); - // xy of text dimensions are scaling factors, zw are offset factors. - vertexGenerator.addUniform("layer_dimensions", "vec2"); - vertexGenerator.addUniform("modelViewProjection", "mat4"); - vertexGenerator.addOutgoing("uv_coords", "vec2"); - vertexGenerator.append("void main() {"); - vertexGenerator << " vec3 layerPos = vec3(attr_pos.x * layer_dimensions.x / 2.0" - << ", attr_pos.y * layer_dimensions.y / 2.0" - << ", attr_pos.z);" - << "\n"; - - vertexGenerator.append(" gl_Position = modelViewProjection * vec4(layerPos, 1.0);"); - vertexGenerator.append(" uv_coords = attr_uv;"); - vertexGenerator.append("}"); - - fragmentGenerator.addUniform("layer_image", "sampler2D"); - fragmentGenerator.append("void main() {"); - fragmentGenerator.append(" vec2 theCoords = uv_coords;\n"); - fragmentGenerator.append(" vec4 theLayerTexture = texture2D( layer_image, theCoords );\n"); - fragmentGenerator.append(" if (theLayerTexture.a == 0.0) discard;\n"); - fragmentGenerator.append(" fragOutput = theLayerTexture;\n"); - fragmentGenerator.append("}"); - QSSGRef<QSSGRenderShaderProgram> theShader = getProgramGenerator()->compileGeneratedShader("layer shader", - QSSGShaderCacheProgramFlags(), - ShaderFeatureSetList()); - QSSGRef<QSSGLayerSceneShader> retval; - if (theShader) - retval = QSSGRef<QSSGLayerSceneShader>(new QSSGLayerSceneShader(theShader)); - m_sceneLayerShader = retval; - return m_sceneLayerShader; -} - QSSGRef<QSSGFlippedQuadShader> QSSGRendererImpl::getFlippedQuadShader() { if (m_flippedQuadShader) diff --git a/src/runtimerender/rendererimpl/qssgrendererimplshaders_p.h b/src/runtimerender/rendererimpl/qssgrendererimplshaders_p.h index 710c0c8d..12c0d758 100644 --- a/src/runtimerender/rendererimpl/qssgrendererimplshaders_p.h +++ b/src/runtimerender/rendererimpl/qssgrendererimplshaders_p.h @@ -275,27 +275,6 @@ struct QSSGLayerLastFrameBlendShader } }; -struct QSSGLayerSceneShader -{ - QAtomicInt ref; - QSSGRef<QSSGRenderShaderProgram> shader; - - QSSGRenderCachedShaderProperty<QMatrix4x4> mvp; - // Dimensions and offsetting of the image. - QSSGRenderCachedShaderProperty<QVector2D> dimensions; - // The fourth member of text color is the opacity - QSSGRenderCachedShaderProperty<QSSGRenderTexture2D *> sampler; - - QSSGLayerSceneShader(const QSSGRef<QSSGRenderShaderProgram> &inShader) - : shader(inShader) - , mvp("modelViewProjection", inShader) - , dimensions("layer_dimensions", inShader) - , sampler("layer_image", inShader) - { - } - ~QSSGLayerSceneShader() {} -}; - struct QSSGFlippedQuadShader { QAtomicInt ref; |