aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/qmlprofiler/scenegraphtimelinemodel.h
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@theqtcompany.com>2015-08-27 17:36:46 +0200
committerUlf Hermann <ulf.hermann@theqtcompany.com>2015-08-27 18:48:09 +0300
commitdd988bdb5ec7ae4cd082e077c0c9ff051157e1c5 (patch)
tree4b80752ca0ed96ea12274ea675e0926e8a1a38ac /plugins/qmlprofiler/scenegraphtimelinemodel.h
parentc17e3107d16f182561154737aa970c320026162f (diff)
Rename files to follow common pattern among extension plugins
This way the plugin will successfully build with qbs again. Change-Id: Iac5fc64753bb225649ba9f62199d6248450e1546 Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
Diffstat (limited to 'plugins/qmlprofiler/scenegraphtimelinemodel.h')
-rw-r--r--plugins/qmlprofiler/scenegraphtimelinemodel.h107
1 files changed, 107 insertions, 0 deletions
diff --git a/plugins/qmlprofiler/scenegraphtimelinemodel.h b/plugins/qmlprofiler/scenegraphtimelinemodel.h
new file mode 100644
index 0000000000..6225963993
--- /dev/null
+++ b/plugins/qmlprofiler/scenegraphtimelinemodel.h
@@ -0,0 +1,107 @@
+/****************************************************************************
+**
+** Copyright (C) 2015 The Qt Company Ltd
+** All rights reserved.
+** For any questions to The Qt Company, please use contact form at http://www.qt.io/contact-us
+**
+** This file is part of the Qt Enterprise Qt Quick Profiler Add-on.
+**
+** Licensees holding valid Qt Enterprise licenses may use this file in
+** accordance with the Qt Enterprise License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company.
+**
+** If you have questions regarding the use of this file, please use
+** contact form at http://www.qt.io/contact-us
+**
+****************************************************************************/
+
+#ifndef SCENEGRAPHTIMELINEMODEL_H
+#define SCENEGRAPHTIMELINEMODEL_H
+
+#include "qmlprofiler/qmlprofilertimelinemodel.h"
+#include "qmlprofiler/qmlprofilermodelmanager.h"
+#include "qmlprofiler/qmlprofilerdatamodel.h"
+
+#include <QStringList>
+#include <QColor>
+
+namespace QmlProfilerExtension {
+namespace Internal {
+
+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 typeId = -1, int glyphCount = -1);
+ int typeId;
+ int rowNumberCollapsed;
+ int glyphCount; // only used for one event type
+ };
+
+ SceneGraphTimelineModel(QmlProfiler::QmlProfilerModelManager *manager, QObject *parent = 0);
+
+ int expandedRow(int index) const;
+ int collapsedRow(int index) const;
+ int typeId(int index) const;
+ QColor color(int index) const;
+
+ QVariantList labels() const;
+
+ QVariantMap details(int index) const;
+
+protected:
+ void loadData();
+ void clear();
+
+private:
+ 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
+} // namespace QmlProfilerExtension
+
+#endif // SCENEGRAPHTIMELINEMODEL_H