]> git.cworth.org Git - apitrace/blobdiff - gui/apitracecall.cpp
Introduce call flags.
[apitrace] / gui / apitracecall.cpp
index 356ef9c668d81e3c9a71d6ba516777a8dfb5ddc5..bc88c3b4f29bc2c40fb4e78a8467d986fae64aff 100644 (file)
@@ -105,9 +105,12 @@ apiVariantToString(const QVariant &variant, bool multiLine)
         return QLatin1String("?");
     }
 
-    if (variant.userType() == QVariant::Double) {
+    if (variant.userType() == QMetaType::Float) {
         return QString::number(variant.toFloat());
     }
+    if (variant.userType() == QVariant::Double) {
+        return QString::number(variant.toDouble());
+    }
     if (variant.userType() == QVariant::ByteArray) {
         if (variant.toByteArray().size() < 1024) {
             int bytes = variant.toByteArray().size();
@@ -171,6 +174,11 @@ void VariantVisitor::visit(trace::Float *node)
     m_variant = QVariant(node->value);
 }
 
+void VariantVisitor::visit(trace::Double *node)
+{
+    m_variant = QVariant(node->value);
+}
+
 void VariantVisitor::visit(trace::String *node)
 {
     m_variant = QVariant(QString::fromStdString(node->value));
@@ -460,6 +468,8 @@ ApiTraceState::ApiTraceState(const QVariantMap &parsedJson)
             image[QLatin1String("__channels__")].toInt();
         int depth =
             image[QLatin1String("__depth__")].toInt();
+        QString formatName =
+            image[QLatin1String("__format__")].toString();
 
         Q_ASSERT(type == QLatin1String("uint8"));
         Q_ASSERT(normalized == true);
@@ -471,6 +481,7 @@ ApiTraceState::ApiTraceState(const QVariantMap &parsedJson)
         ApiTexture tex;
         tex.setSize(size);
         tex.setDepth(depth);
+        tex.setFormatName(formatName);
         tex.setNumChannels(numChannels);
         tex.setLabel(itr.key());
         tex.contentsFromBase64(dataArray);
@@ -489,6 +500,7 @@ ApiTraceState::ApiTraceState(const QVariantMap &parsedJson)
         bool normalized = buffer[QLatin1String("__normalized__")].toBool();
         int numChannels = buffer[QLatin1String("__channels__")].toInt();
         int depth = buffer[QLatin1String("__depth__")].toInt();
+        QString formatName = buffer[QLatin1String("__format__")].toString();
 
         Q_ASSERT(type == QLatin1String("uint8"));
         Q_ASSERT(normalized == true);
@@ -500,6 +512,7 @@ ApiTraceState::ApiTraceState(const QVariantMap &parsedJson)
         ApiFramebuffer fbo;
         fbo.setSize(size);
         fbo.setDepth(depth);
+        fbo.setFormatName(formatName);
         fbo.setNumChannels(numChannels);
         fbo.setType(itr.key());
         fbo.contentsFromBase64(dataArray);
@@ -657,6 +670,7 @@ ApiTraceCall::ApiTraceCall(ApiTraceFrame *parentFrame,
         }
     }
     m_argValues.squeeze();
+    m_flags = call->flags;
 }
 
 ApiTraceCall::~ApiTraceCall()
@@ -772,6 +786,11 @@ QVariant ApiTraceCall::returnValue() const
     return m_returnValue;
 }
 
+trace::CallFlags ApiTraceCall::flags() const
+{
+    return m_flags;
+}
+
 QUrl ApiTraceCall::helpUrl() const
 {
     return m_signature->helpUrl();