X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=gui%2Fapitracecall.cpp;h=33774861013cc99165c323800a09f6cbef0fc1ac;hb=c8695f74ce1ee6a93dee4b3f7da5a70a64706c82;hp=267dc0980edeaaa7ea02c26de9e981d25e96b6fa;hpb=ee659c84695e9f94b1f6a5f8be203dc0012ca685;p=apitrace diff --git a/gui/apitracecall.cpp b/gui/apitracecall.cpp index 267dc09..3377486 100644 --- a/gui/apitracecall.cpp +++ b/gui/apitracecall.cpp @@ -227,6 +227,12 @@ void VariantVisitor::visit(trace::Pointer *ptr) m_variant = QVariant::fromValue(ApiPointer(ptr->value)); } +void VariantVisitor::visit(trace::Repr *repr) +{ + /* TODO: Preserve both the human and machine value */ + repr->humanValue->visit(*this); +} + ApiTraceEnumSignature::ApiTraceEnumSignature(const trace::EnumSig *sig) { for (const trace::EnumValue *it = sig->values; @@ -336,7 +342,6 @@ void ApiBitmask::init(const trace::Bitmask *bitmask) m_value = bitmask->value; for (const trace::BitmaskFlag *it = bitmask->sig->flags; it != bitmask->sig->flags + bitmask->sig->num_flags; ++it) { - assert(it->value); QPair pair; pair.first = QString::fromStdString(it->name); @@ -351,10 +356,10 @@ QString ApiBitmask::toString() const QString str; unsigned long long value = m_value; bool first = true; - for (Signature::const_iterator it = m_sig.begin(); - value != 0 && it != m_sig.end(); ++it) { - Q_ASSERT(it->second); - if ((value & it->second) == it->second) { + for (Signature::const_iterator it = m_sig.begin(); it != m_sig.end(); ++it) { + Q_ASSERT(it->second || first); + if ((it->second && (value & it->second) == it->second) || + (!it->second && value == 0)) { if (!first) { str += QLatin1String(" | "); } @@ -362,6 +367,9 @@ QString ApiBitmask::toString() const value &= ~it->second; first = false; } + if (value == 0) { + break; + } } if (value || first) { if (!first) { @@ -482,20 +490,11 @@ ApiTraceState::ApiTraceState(const QVariantMap &parsedJson) QSize size(image[QLatin1String("__width__")].toInt(), image[QLatin1String("__height__")].toInt()); QString cls = image[QLatin1String("__class__")].toString(); - QString type = image[QLatin1String("__type__")].toString(); - bool normalized = - image[QLatin1String("__normalized__")].toBool(); - int numChannels = - 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); - Q_UNUSED(normalized); - QByteArray dataArray = image[QLatin1String("__data__")].toByteArray(); @@ -503,7 +502,6 @@ ApiTraceState::ApiTraceState(const QVariantMap &parsedJson) tex.setSize(size); tex.setDepth(depth); tex.setFormatName(formatName); - tex.setNumChannels(numChannels); tex.setLabel(itr.key()); tex.contentsFromBase64(dataArray); @@ -517,16 +515,9 @@ ApiTraceState::ApiTraceState(const QVariantMap &parsedJson) QSize size(buffer[QLatin1String("__width__")].toInt(), buffer[QLatin1String("__height__")].toInt()); QString cls = buffer[QLatin1String("__class__")].toString(); - QString type = buffer[QLatin1String("__type__")].toString(); - 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); - Q_UNUSED(normalized); - QByteArray dataArray = buffer[QLatin1String("__data__")].toByteArray(); @@ -534,7 +525,6 @@ ApiTraceState::ApiTraceState(const QVariantMap &parsedJson) fbo.setSize(size); fbo.setDepth(depth); fbo.setFormatName(formatName); - fbo.setNumChannels(numChannels); fbo.setType(itr.key()); fbo.contentsFromBase64(dataArray); m_framebuffers.append(fbo); @@ -558,7 +548,10 @@ const QVariantMap & ApiTraceState::uniforms() const bool ApiTraceState::isEmpty() const { - return m_parameters.isEmpty(); + return m_parameters.isEmpty() && + m_shaderSources.isEmpty() && + m_textures.isEmpty() && + m_framebuffers.isEmpty(); } const QList & ApiTraceState::textures() const @@ -1197,3 +1190,13 @@ unsigned ApiTraceFrame::lastCallIndex() const return m_lastCallIndex; } } + +void ApiTraceFrame::setThumbnail(const QImage & thumbnail) +{ + m_thumbnail = thumbnail; +} + +const QImage & ApiTraceFrame::thumbnail() const +{ + return m_thumbnail; +}