aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/qmlprofilerextension/scenegraphtimelinemodel.h
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/qmlprofilerextension/scenegraphtimelinemodel.h')
-rw-r--r--plugins/qmlprofilerextension/scenegraphtimelinemodel.h60
1 files changed, 50 insertions, 10 deletions
diff --git a/plugins/qmlprofilerextension/scenegraphtimelinemodel.h b/plugins/qmlprofilerextension/scenegraphtimelinemodel.h
index bd3e5ad107..6225963993 100644
--- a/plugins/qmlprofilerextension/scenegraphtimelinemodel.h
+++ b/plugins/qmlprofilerextension/scenegraphtimelinemodel.h
@@ -19,7 +19,7 @@
#ifndef SCENEGRAPHTIMELINEMODEL_H
#define SCENEGRAPHTIMELINEMODEL_H
-#include "qmlprofiler/abstracttimelinemodel.h"
+#include "qmlprofiler/qmlprofilertimelinemodel.h"
#include "qmlprofiler/qmlprofilermodelmanager.h"
#include "qmlprofiler/qmlprofilerdatamodel.h"
@@ -29,23 +29,59 @@
namespace QmlProfilerExtension {
namespace Internal {
-class SceneGraphTimelineModel : public QmlProfiler::AbstractTimelineModel
+class SceneGraphTimelineModel : public QmlProfiler::QmlProfilerTimelineModel
{
Q_OBJECT
public:
+ enum SceneGraphStage {
+ MinimumSceneGraphStage = 0,
+ Polish = MinimumSceneGraphStage,
+ Wait,
+ GUIThreadSync,
+ Animations,
+ MaximumGUIThreadStage,
+
+ RenderThreadSync = MaximumGUIThreadStage,
+ Render,
+ Swap,
+ MaximumRenderThreadStage,
+
+ RenderPreprocess = MaximumRenderThreadStage,
+ RenderUpdate,
+ RenderBind,
+ RenderRender,
+ MaximumRenderStage,
+
+ Material = MaximumRenderStage,
+ MaximumMaterialStage,
+
+ GlyphRender = MaximumMaterialStage,
+ GlyphStore,
+ MaximumGlyphStage,
+
+ TextureBind = MaximumGlyphStage,
+ TextureConvert,
+ TextureSwizzle,
+ TextureUpload,
+ TextureMipmap,
+ TextureDeletion,
+ MaximumTextureStage,
+
+ MaximumSceneGraphStage = MaximumTextureStage
+ };
struct SceneGraphEvent {
- SceneGraphEvent(int stage = -1, int glyphCount = -1);
- int stage;
+ SceneGraphEvent(int typeId = -1, int glyphCount = -1);
+ int typeId;
int rowNumberCollapsed;
int glyphCount; // only used for one event type
};
- SceneGraphTimelineModel(QObject *parent = 0);
- quint64 features() const;
+ SceneGraphTimelineModel(QmlProfiler::QmlProfilerModelManager *manager, QObject *parent = 0);
- int row(int index) const;
- int selectionId(int index) const;
+ int expandedRow(int index) const;
+ int collapsedRow(int index) const;
+ int typeId(int index) const;
QColor color(int index) const;
QVariantList labels() const;
@@ -57,8 +93,12 @@ protected:
void clear();
private:
- class SceneGraphTimelineModelPrivate;
- Q_DECLARE_PRIVATE(SceneGraphTimelineModel)
+ void flattenLoads();
+ qint64 insert(qint64 start, qint64 duration, int typeIndex, SceneGraphStage stage,
+ int glyphCount = -1);
+ static const char *threadLabel(SceneGraphStage stage);
+
+ QVector<SceneGraphEvent> m_data;
};
} // namespace Internal