summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHatem ElKharashy <[email protected]>2023-10-16 11:23:24 +0300
committerHatem ElKharashy <[email protected]>2023-12-20 12:18:01 +0000
commit564efa3741ccd21b03d95a778e7a37d5bd902e53 (patch)
tree042748427a3a6c23da1cd4e088f5c1c150c0c780
parentf2e622a75dc5c27bb3eeb73e286264bd4415ede7 (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.cpp16
-rw-r--r--src/gui/util/qgraphicsframecapture_p.h3
-rw-r--r--src/gui/util/qgraphicsframecapture_p_p.h11
-rw-r--r--src/gui/util/qgraphicsframecapturemetal.mm1
-rw-r--r--src/gui/util/qgraphicsframecapturerenderdoc.cpp13
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()