From c3af4a21808c16be9c9b9945223416377c430fc0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antti=20M=C3=A4=C3=A4tt=C3=A4?= Date: Tue, 31 Jan 2023 11:05:03 +0200 Subject: [PATCH] tracegen: Add support for QSizeF and QRectF types MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: Ie19523b84026312c3d5a597914abc2622dba3f68 Reviewed-by: Antti Määttä Reviewed-by: Tomi Korpipää (cherry picked from commit 0510307ea1bfe2a1788738acb61890587e75dd5e) --- src/tools/tracegen/ctf.cpp | 12 ++++++++++++ src/tools/tracegen/etw.cpp | 2 ++ src/tools/tracegen/lttng.cpp | 10 ++++++++++ src/tools/tracegen/provider.cpp | 4 +++- src/tools/tracegen/provider.h | 2 ++ 5 files changed, 29 insertions(+), 1 deletion(-) diff --git a/src/tools/tracegen/ctf.cpp b/src/tools/tracegen/ctf.cpp index 1d47e646fea..5a3902dd71d 100644 --- a/src/tools/tracegen/ctf.cpp +++ b/src/tools/tracegen/ctf.cpp @@ -257,6 +257,18 @@ static void writeTracepoint(QTextStream &stream, stream << " + QStringLiteral(\"int32_t QSize_" << arg.name << "_height;\\n\\\n \")"; eventSize += QStringLiteral("8"); } break; + case Tracepoint::Field::QtRectF: { + stream << "QStringLiteral(\"float QRectF_" << arg.name << "_x;\\n\\\n \")"; + stream << " + QStringLiteral(\"float QRectF_" << arg.name << "_y;\\n\\\n \")"; + stream << " + QStringLiteral(\"float QRectF_" << arg.name << "_width;\\n\\\n \")"; + stream << " + QStringLiteral(\"float QRectF_" << arg.name << "_height;\\n\\\n \")"; + eventSize += QStringLiteral("16"); + } break; + case Tracepoint::Field::QtSizeF: { + stream << "QStringLiteral(\"float QSizeF_" << arg.name << "_width;\\n\\\n \")"; + stream << " + QStringLiteral(\"float QSizeF_" << arg.name << "_height;\\n\\\n \")"; + eventSize += QStringLiteral("8"); + } break; case Tracepoint::Field::Unknown: break; case Tracepoint::Field::EnumeratedType: { diff --git a/src/tools/tracegen/etw.cpp b/src/tools/tracegen/etw.cpp index 53a62bd63c0..0bf8d0e2d27 100644 --- a/src/tools/tracegen/etw.cpp +++ b/src/tools/tracegen/etw.cpp @@ -45,12 +45,14 @@ static void writeEtwMacro(QTextStream &stream, const Tracepoint::Field &field) stream << "TraceLoggingValue(" << name << ".toEncoded().constData(), \"" << name << "\")"; return; case Tracepoint::Field::QtRect: + case Tracepoint::Field::QtRectF: stream << "TraceLoggingValue(" << name << ".x(), \"x\"), " << "TraceLoggingValue(" << name << ".y(), \"y\"), " << "TraceLoggingValue(" << name << ".width(), \"width\"), " << "TraceLoggingValue(" << name << ".height(), \"height\")"; return; case Tracepoint::Field::QtSize: + case Tracepoint::Field::QtSizeF: stream << "TraceLoggingValue(" << name << ".width(), \"width\"), " << "TraceLoggingValue(" << name << ".height(), \"height\")"; return; diff --git a/src/tools/tracegen/lttng.cpp b/src/tools/tracegen/lttng.cpp index 3425b4e4b67..b812682217a 100644 --- a/src/tools/tracegen/lttng.cpp +++ b/src/tools/tracegen/lttng.cpp @@ -61,6 +61,16 @@ static void writeCtfMacro(QTextStream &stream, const Provider &provider, const T << "ctf_integer(int, width, " << name << ".width()) " << "ctf_integer(int, height, " << name << ".height()) "; return; + case Tracepoint::Field::QtSizeF: + stream << "ctf_float(int, width, " << name << ".width()) " + << "ctf_float(int, height, " << name << ".height()) "; + return; + case Tracepoint::Field::QtRectF: + stream << "ctf_float(int, x, " << name << ".x()) " + << "ctf_float(int, y, " << name << ".y()) " + << "ctf_float(int, width, " << name << ".width()) " + << "ctf_float(int, height, " << name << ".height()) "; + return; case Tracepoint::Field::QtSize: stream << "ctf_integer(int, width, " << name << ".width()) " << "ctf_integer(int, height, " << name << ".height()) "; diff --git a/src/tools/tracegen/provider.cpp b/src/tools/tracegen/provider.cpp index ee768f1113a..0a0b033d840 100644 --- a/src/tools/tracegen/provider.cpp +++ b/src/tools/tracegen/provider.cpp @@ -140,7 +140,9 @@ static Tracepoint::Field::Type backendType(QString rawType) TYPEDATA_ENTRY(QByteArray, Tracepoint::Field::QtByteArray), TYPEDATA_ENTRY(QUrl, Tracepoint::Field::QtUrl), TYPEDATA_ENTRY(QRect, Tracepoint::Field::QtRect), - TYPEDATA_ENTRY(QSize, Tracepoint::Field::QtSize) + TYPEDATA_ENTRY(QSize, Tracepoint::Field::QtSize), + TYPEDATA_ENTRY(QRectF, Tracepoint::Field::QtRectF), + TYPEDATA_ENTRY(QSizeF, Tracepoint::Field::QtSizeF) }; auto backendType = [](const QString &rawType) { diff --git a/src/tools/tracegen/provider.h b/src/tools/tracegen/provider.h index 9a3719ea632..29d83f2a400 100644 --- a/src/tools/tracegen/provider.h +++ b/src/tools/tracegen/provider.h @@ -33,6 +33,8 @@ struct Tracepoint QtUrl, QtRect, QtSize, + QtRectF, + QtSizeF, EnumeratedType, FlagType, Unknown