diff options
Diffstat (limited to 'src/quick/scenegraph/coreapi/qsgbatchrenderer_p.h')
-rw-r--r-- | src/quick/scenegraph/coreapi/qsgbatchrenderer_p.h | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/quick/scenegraph/coreapi/qsgbatchrenderer_p.h b/src/quick/scenegraph/coreapi/qsgbatchrenderer_p.h index 4e374522d4..297df2232a 100644 --- a/src/quick/scenegraph/coreapi/qsgbatchrenderer_p.h +++ b/src/quick/scenegraph/coreapi/qsgbatchrenderer_p.h @@ -642,7 +642,7 @@ public: struct { QSGMaterialRhiShader *program = nullptr; QRhiVertexInputLayout inputLayout; - QVector<QRhiGraphicsShaderStage> shaderStages; + QVarLengthArray<QRhiGraphicsShaderStage, 2> shaderStages; } programRhi; float lastOpacity; @@ -656,7 +656,9 @@ public: void clearCachedRendererData(); - QRhiShaderResourceBindings *srb(const QVector<QRhiShaderResourceBinding> &bindings); + using ShaderResourceBindingList = QVarLengthArray<QRhiShaderResourceBinding, 8>; + + QRhiShaderResourceBindings *srb(const ShaderResourceBindingList &bindings); public Q_SLOTS: void invalidated(); @@ -672,7 +674,7 @@ private: QOpenGLShaderProgram *blitProgram; QSGDefaultRenderContext *context; - QHash<QVector<QRhiShaderResourceBinding>, QRhiShaderResourceBindings *> srbCache; + QHash<ShaderResourceBindingList, QRhiShaderResourceBindings *> srbCache; }; struct GraphicsState @@ -796,10 +798,10 @@ private: void renderBatches(); bool ensurePipelineState(Element *e, const ShaderManager::Shader *sms); QRhiTexture *dummyTexture(); - void updateMaterialDynamicData(ShaderManager::Shader *sms, const QSGMaterialRhiShader::RenderState &renderState, - QSGMaterial *material, QVector<QRhiShaderResourceBinding> *bindings, + void updateMaterialDynamicData(ShaderManager::Shader *sms, QSGMaterialRhiShader::RenderState &renderState, + QSGMaterial *material, ShaderManager::ShaderResourceBindingList *bindings, const Batch *batch, int ubufOffset, int ubufRegionSize); - void updateMaterialStaticData(ShaderManager::Shader *sms, const QSGMaterialRhiShader::RenderState &renderState, + void updateMaterialStaticData(ShaderManager::Shader *sms, QSGMaterialRhiShader::RenderState &renderState, QSGMaterial *material, Batch *batch, bool *gstateChanged); void checkLineWidth(QSGGeometry *g); bool prepareRenderMergedBatch(Batch *batch, PreparedRenderBatch *renderBatch); |