forked from qt-creator/qt-creator
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:
@@ -47,24 +47,34 @@ QSGSimpleRectNode *createSelectionNode()
|
||||
return selectionNode;
|
||||
}
|
||||
|
||||
struct TimelineSelectionRenderPassState : public TimelineRenderPass::State {
|
||||
QSGSimpleRectNode *m_expandedOverlay;
|
||||
QSGSimpleRectNode *m_collapsedOverlay;
|
||||
|
||||
QSGNode *expandedOverlay() const { return m_expandedOverlay; }
|
||||
QSGNode *collapsedOverlay() const { return m_collapsedOverlay; }
|
||||
};
|
||||
|
||||
TimelineRenderPass::State *TimelineSelectionRenderPass::update(const TimelineRenderer *renderer,
|
||||
const TimelineRenderState *parentState, State *state, int firstIndex, int lastIndex,
|
||||
const TimelineRenderState *parentState, State *oldState, int firstIndex, int lastIndex,
|
||||
bool stateChanged, qreal spacing) const
|
||||
{
|
||||
Q_UNUSED(stateChanged);
|
||||
|
||||
if (state == 0)
|
||||
state = new TimelineRenderPass::State;
|
||||
TimelineSelectionRenderPassState *state;
|
||||
|
||||
if (state->expandedOverlay == 0) {
|
||||
state->expandedOverlay = createSelectionNode();
|
||||
state->collapsedOverlay = createSelectionNode();
|
||||
if (oldState == 0) {
|
||||
state = new TimelineSelectionRenderPassState;
|
||||
state->m_expandedOverlay = createSelectionNode();
|
||||
state->m_collapsedOverlay = createSelectionNode();
|
||||
} else {
|
||||
state = static_cast<TimelineSelectionRenderPassState *>(oldState);
|
||||
}
|
||||
|
||||
const TimelineModel *model = renderer->model();
|
||||
QSGSimpleRectNode *selectionNode = static_cast<QSGSimpleRectNode *>(model->expanded() ?
|
||||
state->expandedOverlay :
|
||||
state->collapsedOverlay);
|
||||
state->m_expandedOverlay :
|
||||
state->m_collapsedOverlay);
|
||||
|
||||
QSGSimpleRectNode *child = static_cast<QSGSimpleRectNode *>(selectionNode->firstChild());
|
||||
int selectedItem = renderer->selectedItem();
|
||||
|
||||
Reference in New Issue
Block a user