diff options
Diffstat (limited to 'src/qmldebug')
-rw-r--r-- | src/qmldebug/qmldebug.pro | 5 | ||||
-rw-r--r-- | src/qmldebug/qqmlenginecontrolclient.cpp | 3 | ||||
-rw-r--r-- | src/qmldebug/qqmlprofilerclient.cpp | 1 | ||||
-rw-r--r-- | src/qmldebug/qqmlprofilerclient_p.h | 4 | ||||
-rw-r--r-- | src/qmldebug/qqmlprofilerclient_p_p.h | 6 | ||||
-rw-r--r-- | src/qmldebug/qqmlprofilerclientdefinitions_p.h | 152 | ||||
-rw-r--r-- | src/qmldebug/qqmlprofilerevent_p.h | 4 | ||||
-rw-r--r-- | src/qmldebug/qqmlprofilereventtype.cpp | 26 | ||||
-rw-r--r-- | src/qmldebug/qqmlprofilereventtype_p.h | 5 | ||||
-rw-r--r-- | src/qmldebug/qqmlprofilertypedevent.cpp | 91 |
10 files changed, 232 insertions, 65 deletions
diff --git a/src/qmldebug/qmldebug.pro b/src/qmldebug/qmldebug.pro index 2539414d8f..2c1b71797d 100644 --- a/src/qmldebug/qmldebug.pro +++ b/src/qmldebug/qmldebug.pro @@ -1,5 +1,5 @@ TARGET = QtQmlDebug -QT = core-private network packetprotocol-private qml-private +QT = core-private network packetprotocol-private CONFIG += static internal_module load(qt_module) @@ -28,4 +28,5 @@ HEADERS += \ qqmlprofilereventlocation_p.h \ qqmlprofilereventreceiver_p.h \ qqmlprofilereventtype_p.h \ - qqmlprofilertypedevent_p.h + qqmlprofilertypedevent_p.h \ + qqmlprofilerclientdefinitions_p.h diff --git a/src/qmldebug/qqmlenginecontrolclient.cpp b/src/qmldebug/qqmlenginecontrolclient.cpp index 13f216ce38..45d672d4bc 100644 --- a/src/qmldebug/qqmlenginecontrolclient.cpp +++ b/src/qmldebug/qqmlenginecontrolclient.cpp @@ -41,7 +41,6 @@ #include "qqmlenginecontrolclient_p_p.h" #include "qqmldebugconnection_p.h" -#include <private/qqmldebugserviceinterfaces_p.h> #include <private/qpacket_p.h> QT_BEGIN_NAMESPACE @@ -142,7 +141,7 @@ void QQmlEngineControlClient::messageReceived(const QByteArray &data) } QQmlEngineControlClientPrivate::QQmlEngineControlClientPrivate(QQmlDebugConnection *connection) : - QQmlDebugClientPrivate(QQmlEngineControlService::s_key, connection) + QQmlDebugClientPrivate(QLatin1String("EngineControl"), connection) { } diff --git a/src/qmldebug/qqmlprofilerclient.cpp b/src/qmldebug/qqmlprofilerclient.cpp index d2a2d24f13..661b43f164 100644 --- a/src/qmldebug/qqmlprofilerclient.cpp +++ b/src/qmldebug/qqmlprofilerclient.cpp @@ -39,7 +39,6 @@ #include "qqmlprofilerclient_p_p.h" #include "qqmldebugconnection_p.h" -#include <private/qqmldebugserviceinterfaces_p.h> QT_BEGIN_NAMESPACE diff --git a/src/qmldebug/qqmlprofilerclient_p.h b/src/qmldebug/qqmlprofilerclient_p.h index 68a32a1a5a..7b8e286f5b 100644 --- a/src/qmldebug/qqmlprofilerclient_p.h +++ b/src/qmldebug/qqmlprofilerclient_p.h @@ -43,8 +43,8 @@ #include "qqmldebugclient_p.h" #include "qqmlprofilereventlocation_p.h" #include "qqmlprofilereventreceiver_p.h" +#include "qqmlprofilerclientdefinitions_p.h" -#include <private/qqmlprofilerdefinitions_p.h> #include <private/qpacket_p.h> // @@ -61,7 +61,7 @@ QT_BEGIN_NAMESPACE class QQmlProfilerClientPrivate; -class QQmlProfilerClient : public QQmlDebugClient, public QQmlProfilerDefinitions +class QQmlProfilerClient : public QQmlDebugClient { Q_OBJECT Q_DECLARE_PRIVATE(QQmlProfilerClient) diff --git a/src/qmldebug/qqmlprofilerclient_p_p.h b/src/qmldebug/qqmlprofilerclient_p_p.h index 0caef8e448..994c08cafc 100644 --- a/src/qmldebug/qqmlprofilerclient_p_p.h +++ b/src/qmldebug/qqmlprofilerclient_p_p.h @@ -45,10 +45,10 @@ #include "qqmlenginecontrolclient_p.h" #include "qqmlprofilerclient_p.h" #include "qqmlprofilertypedevent_p.h" - -#include <private/qqmlprofilerdefinitions_p.h> +#include "qqmlprofilerclientdefinitions_p.h" #include <QtCore/qqueue.h> +#include <QtCore/qstack.h> // // W A R N I N G @@ -63,7 +63,7 @@ QT_BEGIN_NAMESPACE -class QQmlProfilerClientPrivate : public QQmlDebugClientPrivate, public QQmlProfilerDefinitions { +class QQmlProfilerClientPrivate : public QQmlDebugClientPrivate { Q_DECLARE_PUBLIC(QQmlProfilerClient) public: QQmlProfilerClientPrivate(QQmlDebugConnection *connection, diff --git a/src/qmldebug/qqmlprofilerclientdefinitions_p.h b/src/qmldebug/qqmlprofilerclientdefinitions_p.h new file mode 100644 index 0000000000..c8524574f6 --- /dev/null +++ b/src/qmldebug/qqmlprofilerclientdefinitions_p.h @@ -0,0 +1,152 @@ +/**************************************************************************** +** +** Copyright (C) 2018 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtQml module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QQMLPROFILERCLIENTDEFINITIONS_P_H +#define QQMLPROFILERCLIENTDEFINITIONS_P_H + +#include <QtCore/qglobal.h> + +QT_BEGIN_NAMESPACE + +enum Message { + Event, + RangeStart, + RangeData, + RangeLocation, + RangeEnd, + Complete, // end of transmission + PixmapCacheEvent, + SceneGraphFrame, + MemoryAllocation, + DebugMessage, + + MaximumMessage +}; + +enum EventType { + FramePaint, + Mouse, + Key, + AnimationFrame, + EndTrace, + StartTrace, + + MaximumEventType +}; + +enum RangeType { + Painting, + Compiling, + Creating, + Binding, //running a binding + HandlingSignal, //running a signal handler + Javascript, + + MaximumRangeType +}; + +enum PixmapEventType { + PixmapSizeKnown, + PixmapReferenceCountChanged, + PixmapCacheCountChanged, + PixmapLoadingStarted, + PixmapLoadingFinished, + PixmapLoadingError, + + MaximumPixmapEventType +}; + +enum SceneGraphFrameType { + SceneGraphRendererFrame, // Render Thread + SceneGraphAdaptationLayerFrame, // Render Thread + SceneGraphContextFrame, // Render Thread + SceneGraphRenderLoopFrame, // Render Thread + SceneGraphTexturePrepare, // Render Thread + SceneGraphTextureDeletion, // Render Thread + SceneGraphPolishAndSync, // GUI Thread + SceneGraphWindowsRenderShow, // Unused + SceneGraphWindowsAnimations, // GUI Thread + SceneGraphPolishFrame, // GUI Thread + + MaximumSceneGraphFrameType, + NumRenderThreadFrameTypes = SceneGraphPolishAndSync, + NumGUIThreadFrameTypes = MaximumSceneGraphFrameType - NumRenderThreadFrameTypes +}; + +enum MemoryType { + HeapPage, + LargeItem, + SmallItem +}; + +enum ProfileFeature { + ProfileJavaScript, + ProfileMemory, + ProfilePixmapCache, + ProfileSceneGraph, + ProfileAnimations, + ProfilePainting, + ProfileCompiling, + ProfileCreating, + ProfileBinding, + ProfileHandlingSignal, + ProfileInputEvents, + ProfileDebugMessages, + + MaximumProfileFeature +}; + +enum InputEventType { + InputKeyPress, + InputKeyRelease, + InputKeyUnknown, + + InputMousePress, + InputMouseRelease, + InputMouseMove, + InputMouseDoubleClick, + InputMouseWheel, + InputMouseUnknown, + + MaximumInputEventType +}; + +QT_END_NAMESPACE + +#endif // QQMLPROFILERCLIENTDEFINITIONS_P_H diff --git a/src/qmldebug/qqmlprofilerevent_p.h b/src/qmldebug/qqmlprofilerevent_p.h index 49a0c9e347..1e205d8dbb 100644 --- a/src/qmldebug/qqmlprofilerevent_p.h +++ b/src/qmldebug/qqmlprofilerevent_p.h @@ -40,7 +40,7 @@ #ifndef QQMLPROFILEREVENT_P_H #define QQMLPROFILEREVENT_P_H -#include <private/qqmlprofilerdefinitions_p.h> +#include "qqmlprofilerclientdefinitions_p.h" #include <QtCore/qstring.h> #include <QtCore/qbytearray.h> @@ -63,7 +63,7 @@ QT_BEGIN_NAMESPACE -struct QQmlProfilerEvent : public QQmlProfilerDefinitions { +struct QQmlProfilerEvent { QQmlProfilerEvent() : m_timestamp(-1), m_typeIndex(-1), m_dataType(Inline8Bit), m_dataLength(0) {} diff --git a/src/qmldebug/qqmlprofilereventtype.cpp b/src/qmldebug/qqmlprofilereventtype.cpp index b0aad3fc5b..c92e914d74 100644 --- a/src/qmldebug/qqmlprofilereventtype.cpp +++ b/src/qmldebug/qqmlprofilereventtype.cpp @@ -38,6 +38,7 @@ ****************************************************************************/ #include "qqmlprofilereventtype_p.h" +#include "qqmlprofilerclientdefinitions_p.h" #include <QtCore/qdatastream.h> @@ -49,8 +50,8 @@ QDataStream &operator>>(QDataStream &stream, QQmlProfilerEventType &type) quint8 rangeType; stream >> type.m_displayName >> type.m_data >> type.m_location >> message >> rangeType >> type.m_detailType; - type.m_message = static_cast<QQmlProfilerDefinitions::Message>(message); - type.m_rangeType = static_cast<QQmlProfilerDefinitions::RangeType>(rangeType); + type.m_message = static_cast<Message>(message); + type.m_rangeType = static_cast<RangeType>(rangeType); return stream; } @@ -61,7 +62,7 @@ QDataStream &operator<<(QDataStream &stream, const QQmlProfilerEventType &type) << type.m_detailType; } -QQmlProfilerDefinitions::ProfileFeature QQmlProfilerEventType::feature() const +ProfileFeature QQmlProfilerEventType::feature() const { switch (m_message) { case Event: { @@ -84,7 +85,24 @@ QQmlProfilerDefinitions::ProfileFeature QQmlProfilerEventType::feature() const case DebugMessage: return ProfileDebugMessages; default: - return featureFromRangeType(m_rangeType); + break; + } + + switch (m_rangeType) { + case Painting: + return ProfilePainting; + case Compiling: + return ProfileCompiling; + case Creating: + return ProfileCreating; + case Binding: + return ProfileBinding; + case HandlingSignal: + return ProfileHandlingSignal; + case Javascript: + return ProfileJavaScript; + default: + return MaximumProfileFeature; } } diff --git a/src/qmldebug/qqmlprofilereventtype_p.h b/src/qmldebug/qqmlprofilereventtype_p.h index 7bd67f9ca8..7189df53ef 100644 --- a/src/qmldebug/qqmlprofilereventtype_p.h +++ b/src/qmldebug/qqmlprofilereventtype_p.h @@ -41,8 +41,7 @@ #define QQMLPROFILEREVENTTYPE_P_H #include "qqmlprofilereventlocation_p.h" - -#include <private/qqmlprofilerdefinitions_p.h> +#include "qqmlprofilerclientdefinitions_p.h" #include <QtCore/qstring.h> #include <QtCore/qmetatype.h> @@ -61,7 +60,7 @@ QT_BEGIN_NAMESPACE -class QQmlProfilerEventType : public QQmlProfilerDefinitions { +class QQmlProfilerEventType { public: QQmlProfilerEventType(Message message = MaximumMessage, RangeType rangeType = MaximumRangeType, int detailType = -1, diff --git a/src/qmldebug/qqmlprofilertypedevent.cpp b/src/qmldebug/qqmlprofilertypedevent.cpp index 9b00481e17..31a36bd052 100644 --- a/src/qmldebug/qqmlprofilertypedevent.cpp +++ b/src/qmldebug/qqmlprofilertypedevent.cpp @@ -38,6 +38,8 @@ ****************************************************************************/ #include "qqmlprofilertypedevent_p.h" +#include "qqmlprofilerclientdefinitions_p.h" + #include <QtCore/qvarlengtharray.h> QT_BEGIN_NAMESPACE @@ -50,15 +52,15 @@ QDataStream &operator>>(QDataStream &stream, QQmlProfilerTypedEvent &event) stream >> time >> messageType; - if (messageType < 0 || messageType > QQmlProfilerDefinitions::MaximumMessage) - messageType = QQmlProfilerDefinitions::MaximumMessage; + if (messageType < 0 || messageType > MaximumMessage) + messageType = MaximumMessage; - QQmlProfilerDefinitions::RangeType rangeType = QQmlProfilerDefinitions::MaximumRangeType; + RangeType rangeType = MaximumRangeType; if (!stream.atEnd()) { stream >> subtype; - rangeType = static_cast<QQmlProfilerDefinitions::RangeType>(subtype); - if (rangeType < 0 || rangeType > QQmlProfilerDefinitions::MaximumRangeType) - rangeType = QQmlProfilerDefinitions::MaximumRangeType; + rangeType = static_cast<RangeType>(subtype); + if (rangeType < 0 || rangeType > MaximumRangeType) + rangeType = MaximumRangeType; } else { subtype = -1; } @@ -68,13 +70,13 @@ QDataStream &operator>>(QDataStream &stream, QQmlProfilerTypedEvent &event) event.serverTypeId = 0; switch (messageType) { - case QQmlProfilerDefinitions::Event: { + case Event: { event.type = QQmlProfilerEventType( - static_cast<QQmlProfilerDefinitions::Message>(messageType), - QQmlProfilerDefinitions::MaximumRangeType, subtype); + static_cast<Message>(messageType), + MaximumRangeType, subtype); switch (subtype) { - case QQmlProfilerDefinitions::StartTrace: - case QQmlProfilerDefinitions::EndTrace: { + case StartTrace: + case EndTrace: { QVarLengthArray<qint32> engineIds; while (!stream.atEnd()) { qint32 id; @@ -84,7 +86,7 @@ QDataStream &operator>>(QDataStream &stream, QQmlProfilerTypedEvent &event) event.event.setNumbers<QVarLengthArray<qint32>, qint32>(engineIds); break; } - case QQmlProfilerDefinitions::AnimationFrame: { + case AnimationFrame: { qint32 frameRate, animationCount; qint32 threadId; stream >> frameRate >> animationCount; @@ -96,11 +98,9 @@ QDataStream &operator>>(QDataStream &stream, QQmlProfilerTypedEvent &event) event.event.setNumbers<qint32>({frameRate, animationCount, threadId}); break; } - case QQmlProfilerDefinitions::Mouse: - case QQmlProfilerDefinitions::Key: - int inputType = (subtype == QQmlProfilerDefinitions::Key - ? QQmlProfilerDefinitions::InputKeyUnknown - : QQmlProfilerDefinitions::InputMouseUnknown); + case Mouse: + case Key: + int inputType = (subtype == Key ? InputKeyUnknown : InputMouseUnknown); if (!stream.atEnd()) stream >> inputType; qint32 a = -1; @@ -116,13 +116,13 @@ QDataStream &operator>>(QDataStream &stream, QQmlProfilerTypedEvent &event) break; } - case QQmlProfilerDefinitions::Complete: { + case Complete: { event.type = QQmlProfilerEventType( - static_cast<QQmlProfilerDefinitions::Message>(messageType), - QQmlProfilerDefinitions::MaximumRangeType, subtype); + static_cast<Message>(messageType), + MaximumRangeType, subtype); break; } - case QQmlProfilerDefinitions::SceneGraphFrame: { + case SceneGraphFrame: { QVarLengthArray<qint64> params; qint64 param; @@ -132,41 +132,40 @@ QDataStream &operator>>(QDataStream &stream, QQmlProfilerTypedEvent &event) } event.type = QQmlProfilerEventType( - static_cast<QQmlProfilerDefinitions::Message>(messageType), - QQmlProfilerDefinitions::MaximumRangeType, subtype); + static_cast<Message>(messageType), + MaximumRangeType, subtype); event.event.setNumbers<QVarLengthArray<qint64>, qint64>(params); break; } - case QQmlProfilerDefinitions::PixmapCacheEvent: { + case PixmapCacheEvent: { qint32 width = 0, height = 0, refcount = 0; QString filename; stream >> filename; - if (subtype == QQmlProfilerDefinitions::PixmapReferenceCountChanged - || subtype == QQmlProfilerDefinitions::PixmapCacheCountChanged) { + if (subtype == PixmapReferenceCountChanged || subtype == PixmapCacheCountChanged) { stream >> refcount; - } else if (subtype == QQmlProfilerDefinitions::PixmapSizeKnown) { + } else if (subtype == PixmapSizeKnown) { stream >> width >> height; refcount = 1; } event.type = QQmlProfilerEventType( - static_cast<QQmlProfilerDefinitions::Message>(messageType), - QQmlProfilerDefinitions::MaximumRangeType, subtype, + static_cast<Message>(messageType), + MaximumRangeType, subtype, QQmlProfilerEventLocation(filename, 0, 0)); event.event.setNumbers<qint32>({width, height, refcount}); break; } - case QQmlProfilerDefinitions::MemoryAllocation: { + case MemoryAllocation: { qint64 delta; stream >> delta; event.type = QQmlProfilerEventType( - static_cast<QQmlProfilerDefinitions::Message>(messageType), - QQmlProfilerDefinitions::MaximumRangeType, subtype); + static_cast<Message>(messageType), + MaximumRangeType, subtype); event.event.setNumbers<qint64>({delta}); break; } - case QQmlProfilerDefinitions::RangeStart: { + case RangeStart: { if (!stream.atEnd()) { qint64 typeId; stream >> typeId; @@ -175,22 +174,22 @@ QDataStream &operator>>(QDataStream &stream, QQmlProfilerTypedEvent &event) // otherwise it's the old binding type of 4 bytes } - event.type = QQmlProfilerEventType(QQmlProfilerDefinitions::MaximumMessage, rangeType, -1); - event.event.setRangeStage(QQmlProfilerDefinitions::RangeStart); + event.type = QQmlProfilerEventType(MaximumMessage, rangeType, -1); + event.event.setRangeStage(RangeStart); break; } - case QQmlProfilerDefinitions::RangeData: { + case RangeData: { QString data; stream >> data; - event.type = QQmlProfilerEventType(QQmlProfilerDefinitions::MaximumMessage, rangeType, -1, + event.type = QQmlProfilerEventType(MaximumMessage, rangeType, -1, QQmlProfilerEventLocation(), data); - event.event.setRangeStage(QQmlProfilerDefinitions::RangeData); + event.event.setRangeStage(RangeData); if (!stream.atEnd()) stream >> event.serverTypeId; break; } - case QQmlProfilerDefinitions::RangeLocation: { + case RangeLocation: { QString filename; qint32 line = 0; qint32 column = 0; @@ -202,21 +201,21 @@ QDataStream &operator>>(QDataStream &stream, QQmlProfilerTypedEvent &event) stream >> event.serverTypeId; } - event.type = QQmlProfilerEventType(QQmlProfilerDefinitions::MaximumMessage, rangeType, -1, + event.type = QQmlProfilerEventType(MaximumMessage, rangeType, -1, QQmlProfilerEventLocation(filename, line, column)); - event.event.setRangeStage(QQmlProfilerDefinitions::RangeLocation); + event.event.setRangeStage(RangeLocation); break; } - case QQmlProfilerDefinitions::RangeEnd: { - event.type = QQmlProfilerEventType(QQmlProfilerDefinitions::MaximumMessage, rangeType, -1); - event.event.setRangeStage(QQmlProfilerDefinitions::RangeEnd); + case RangeEnd: { + event.type = QQmlProfilerEventType(MaximumMessage, rangeType, -1); + event.event.setRangeStage(RangeEnd); break; } default: event.event.setNumbers<char>({}); event.type = QQmlProfilerEventType( - static_cast<QQmlProfilerDefinitions::Message>(messageType), - QQmlProfilerDefinitions::MaximumRangeType, subtype); + static_cast<Message>(messageType), + MaximumRangeType, subtype); break; } |