diff options
author | Hatem ElKharashy <[email protected]> | 2023-10-16 11:23:24 +0300 |
---|---|---|
committer | Hatem ElKharashy <[email protected]> | 2023-12-20 12:18:01 +0000 |
commit | 564efa3741ccd21b03d95a778e7a37d5bd902e53 (patch) | |
tree | 042748427a3a6c23da1cd4e088f5c1c150c0c780 | |
parent | f2e622a75dc5c27bb3eeb73e286264bd4415ede7 (diff) |
QGraphicsFrameCapture : Add getters for frames names
Save captured frames names and add getters for them
Pick-to: 6.7
Change-Id: I429e1512d6610ade9414f59fee3d081548cbb2ab
Reviewed-by: Janne Koskinen <[email protected]>
-rw-r--r-- | src/gui/util/qgraphicsframecapture.cpp | 16 | ||||
-rw-r--r-- | src/gui/util/qgraphicsframecapture_p.h | 3 | ||||
-rw-r--r-- | src/gui/util/qgraphicsframecapture_p_p.h | 11 | ||||
-rw-r--r-- | src/gui/util/qgraphicsframecapturemetal.mm | 1 | ||||
-rw-r--r-- | src/gui/util/qgraphicsframecapturerenderdoc.cpp | 13 |
5 files changed, 41 insertions, 3 deletions
diff --git a/src/gui/util/qgraphicsframecapture.cpp b/src/gui/util/qgraphicsframecapture.cpp index a34a4697c5e..131d2ae6e2e 100644 --- a/src/gui/util/qgraphicsframecapture.cpp +++ b/src/gui/util/qgraphicsframecapture.cpp @@ -82,6 +82,22 @@ void QGraphicsFrameCapture::setCapturePrefix(const QString &prefix) d->setCapturePrefix(prefix); } +QString QGraphicsFrameCapture::capturedFileName() +{ + if (!d.isNull()) + return d->capturedFileName(); + + return QString(); +} + +QStringList QGraphicsFrameCapture::capturedFilesNames() +{ + if (!d.isNull()) + return d->capturedFilesNames(); + + return QStringList(); +} + bool QGraphicsFrameCapture::isLoaded() const { if (!d.isNull()) diff --git a/src/gui/util/qgraphicsframecapture_p.h b/src/gui/util/qgraphicsframecapture_p.h index 8e0110fa159..fef37d2869f 100644 --- a/src/gui/util/qgraphicsframecapture_p.h +++ b/src/gui/util/qgraphicsframecapture_p.h @@ -39,6 +39,9 @@ public: QString capturePrefix() const; void setCapturePrefix(const QString &prefix); + QString capturedFileName(); + QStringList capturedFilesNames(); + bool isLoaded() const; bool isCapturing() const; void openCapture() const; diff --git a/src/gui/util/qgraphicsframecapture_p_p.h b/src/gui/util/qgraphicsframecapture_p_p.h index 63d0d3a1b01..f8dbd2ca1dd 100644 --- a/src/gui/util/qgraphicsframecapture_p_p.h +++ b/src/gui/util/qgraphicsframecapture_p_p.h @@ -18,8 +18,7 @@ #include <QtCore/qnamespace.h> #include <QtCore/qstring.h> #include <QtCore/qloggingcategory.h> - -class QRhi; +#include <QtCore/qstringlist.h> QT_BEGIN_NAMESPACE @@ -27,6 +26,7 @@ Q_DECLARE_LOGGING_CATEGORY(lcGraphicsFrameCapture) class QRhi; struct QRhiNativeHandles; + class QGraphicsFrameCapturePrivate { public: @@ -43,6 +43,12 @@ public: QString capturePrefix() const { return m_capturePrefix; } virtual void setCapturePrefix(const QString &prefix) { m_capturePrefix = prefix; } + virtual QString capturedFileName() const + { + return !m_capturedFilesNames.isEmpty() ? m_capturedFilesNames.last() : QString(); + } + virtual QStringList capturedFilesNames() const { return m_capturedFilesNames; } + virtual bool initialized() const = 0; virtual bool isCapturing() const = 0; virtual void openCapture() = 0; @@ -53,6 +59,7 @@ protected: void *m_nativeHandle = nullptr; QString m_capturePath; QString m_capturePrefix; + QStringList m_capturedFilesNames; }; QT_END_NAMESPACE diff --git a/src/gui/util/qgraphicsframecapturemetal.mm b/src/gui/util/qgraphicsframecapturemetal.mm index 91c0b924e48..b0ff0bab2b2 100644 --- a/src/gui/util/qgraphicsframecapturemetal.mm +++ b/src/gui/util/qgraphicsframecapturemetal.mm @@ -111,6 +111,7 @@ void QGraphicsFrameCaptureMetal::endCaptureFrame() } [m_captureManager stopCapture]; + m_capturedFilesNames.append(QString::fromNSString(m_traceURL.path)); frameNumber++; } diff --git a/src/gui/util/qgraphicsframecapturerenderdoc.cpp b/src/gui/util/qgraphicsframecapturerenderdoc.cpp index 9cde74a34cc..983506c4b18 100644 --- a/src/gui/util/qgraphicsframecapturerenderdoc.cpp +++ b/src/gui/util/qgraphicsframecapturerenderdoc.cpp @@ -213,7 +213,18 @@ void QGraphicsFrameCaptureRenderDoc::endCaptureFrame() } qCInfo(lcGraphicsFrameCapture) << "A frame capture is going to end."; - s_rdocApi->EndFrameCapture(m_nativeHandle, nullptr); + uint32_t result = s_rdocApi->EndFrameCapture(m_nativeHandle, nullptr); + + if (result) { + uint32_t count = s_rdocApi->GetNumCaptures(); + uint32_t pathLength = 0; + s_rdocApi->GetCapture(count - 1, nullptr, &pathLength, nullptr); + if (pathLength > 0) { + QVarLengthArray<char> name(pathLength, 0); + s_rdocApi->GetCapture(count - 1, name.data(), &pathLength, nullptr); + m_capturedFilesNames.append(QString::fromUtf8(name.data(), -1)); + } + } } void QGraphicsFrameCaptureRenderDoc::updateCapturePathAndTemplate() |