QmlProfiler: Convert the render pass state into a pure interface

Like that we don't have to expose any private members and we don't have
to care about QSGNodes we'll never create in a render pass.

Change-Id: I4e71da24c85de8f8f73d58fc2e76dc5e82ee31ae
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
This commit is contained in:
Ulf Hermann
2014-12-09 12:44:23 +01:00
parent 35204e1147
commit 2b143cf810
7 changed files with 108 additions and 54 deletions

View File

@@ -65,6 +65,11 @@ struct TimelineNotesRenderPassState : public TimelineRenderPass::State
NotesMaterial material;
QSGGeometry nullGeometry;
QSGGeometryNode *m_collapsedOverlay;
QVector<QSGNode *> m_expandedRows;
QSGNode *collapsedOverlay() const { return m_collapsedOverlay; }
const QVector<QSGNode *> &expandedRows() const { return m_expandedRows; }
};
const QSGGeometry::AttributeSet &NotesGeometry::point2DWithDistanceFromTop()
@@ -127,7 +132,7 @@ TimelineRenderPass::State *TimelineNotesRenderPass::update(const TimelineRendere
collapsed << timelineIndex;
}
QSGGeometryNode *collapsedNode = static_cast<QSGGeometryNode *>(state->collapsedOverlay);
QSGGeometryNode *collapsedNode = state->m_collapsedOverlay;
if (collapsed.count() > 0) {
collapsedNode->setGeometry(NotesGeometry::createGeometry(collapsed, model, parentState,
@@ -139,7 +144,7 @@ TimelineRenderPass::State *TimelineNotesRenderPass::update(const TimelineRendere
}
for (int row = 0; row < model->expandedRowCount(); ++row) {
QSGGeometryNode *rowNode = static_cast<QSGGeometryNode *>(state->expandedRows[row]);
QSGGeometryNode *rowNode = static_cast<QSGGeometryNode *>(state->m_expandedRows[row]);
if (expanded[row].isEmpty()) {
rowNode->setGeometry(&state->nullGeometry);
rowNode->setFlag(QSGGeometryNode::OwnsGeometry, false);
@@ -157,10 +162,10 @@ TimelineNotesRenderPassState::TimelineNotesRenderPassState(int numExpandedRows)
nullGeometry(NotesGeometry::point2DWithDistanceFromTop(), 0)
{
material.setFlag(QSGMaterial::Blending, true);
expandedRows.reserve(numExpandedRows);
m_expandedRows.reserve(numExpandedRows);
for (int i = 0; i < numExpandedRows; ++i)
expandedRows << createNode();
collapsedOverlay = createNode();
m_expandedRows << createNode();
m_collapsedOverlay = createNode();
}
QSGGeometryNode *TimelineNotesRenderPassState::createNode()