diff options
Diffstat (limited to 'plugins/qmlprofilerextension/scenegraphtimelinemodel.h')
-rw-r--r-- | plugins/qmlprofilerextension/scenegraphtimelinemodel.h | 60 |
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 |