#ifndef APITRACECALL_H
#define APITRACECALL_H
+#include "apisurface.h"
+
#include <QStaticText>
#include <QStringList>
#include <QUrl>
#include "trace_model.hpp"
+class ApiTrace;
+
class VariantVisitor : public Trace::Visitor
{
public:
QVariant m_variant;
};
+class ApiEnum
+{
+public:
+ ApiEnum(const QString &name = QString(), const QVariant &val=QVariant());
+
+ QString toString() const;
+
+ QVariant value() const;
+ QString name() const;
+private:
+ QString m_name;
+ QVariant m_value;
+};
+Q_DECLARE_METATYPE(ApiEnum);
class ApiPointer
{
public:
- ApiPointer(int val=0);
+ ApiPointer(unsigned long long val=0);
QString toString() const;
+
+ unsigned long long value() const;
+
private:
- int m_value;
+ unsigned long long m_value;
};
Q_DECLARE_METATYPE(ApiPointer);
QString toString() const;
+ unsigned long long value() const;
+ Signature signature() const;
+
private:
void init(const Trace::Bitmask *bitmask);
private:
ApiStruct(const Trace::Struct *s = 0);
QString toString() const;
+ Signature signature() const;
+ QList<QVariant> values() const;
private:
void init(const Trace::Struct *bitmask);
{
public:
ApiArray(const Trace::Array *arr = 0);
+ ApiArray(const QList<QVariant> &vals);
QString toString() const;
+ QList<QVariant> values() const;
private:
void init(const Trace::Array *arr);
private:
Q_DECLARE_METATYPE(ApiArray);
-QString apiVariantToString(const QVariant &variant);
+QString apiVariantToString(const QVariant &variant, bool multiLine = false);
class ApiTraceFrame;
+class ApiTraceState {
+public:
+ ApiTraceState();
+ explicit ApiTraceState(const QVariantMap &parseJson);
+
+ bool isEmpty() const;
+ QVariantMap parameters() const;
+ QMap<QString, QString> shaderSources() const;
+ QList<ApiTexture> textures() const;
+ QList<ApiFramebuffer> framebuffers() const;
+
+private:
+ QVariantMap m_parameters;
+ QMap<QString, QString> m_shaderSources;
+ QList<ApiTexture> m_textures;
+ QList<ApiFramebuffer> m_framebuffers;
+};
+Q_DECLARE_METATYPE(ApiTraceState);
+
class ApiTraceEvent
{
public:
public:
ApiTraceEvent();
ApiTraceEvent(Type t);
+ virtual ~ApiTraceEvent();
Type type() const { return m_type; }
virtual QStaticText staticText() const = 0;
virtual int numChildren() const = 0;
- QVariantMap state() const;
- void setState(const QVariantMap &state);
+ QVariantMap stateParameters() const;
+ ApiTraceState state() const;
+ void setState(const ApiTraceState &state);
protected:
Type m_type;
- QVariantMap m_state;
+ ApiTraceState m_state;
+
+ mutable QStaticText *m_staticText;
};
Q_DECLARE_METATYPE(ApiTraceEvent*);
{
public:
ApiTraceCall();
+ ApiTraceCall(const Trace::Call *tcall);
~ApiTraceCall();
- int index;
- QString name;
- QStringList argNames;
- QVariantList argValues;
- QVariant returnValue;
- ApiTraceFrame *parentFrame;
- QUrl helpUrl;
+ int index() const;
+ QString name() const;
+ QStringList argNames() const;
+ QVariantList arguments() const;
+ QVariant returnValue() const;
+ QUrl helpUrl() const;
+ void setHelpUrl(const QUrl &url);
+ ApiTraceFrame *parentFrame()const;
+ void setParentFrame(ApiTraceFrame *frame);
+
+ bool hasError() const;
+ QString error() const;
+ void setError(const QString &msg);
+
+ QVariantList originalValues() const;
+
+ bool edited() const;
+ void setEditedValues(const QVariantList &lst);
+ QVariantList editedValues() const;
+ void revert();
+
+ ApiTrace *parentTrace() const;
QString toHtml() const;
QString filterText() const;
bool hasBinaryData() const;
int binaryDataIndex() const;
private:
+ int m_index;
+ QString m_name;
+ QStringList m_argNames;
+ QVariantList m_argValues;
+ QVariant m_returnValue;
+ ApiTraceFrame *m_parentFrame;
+ QUrl m_helpUrl;
+
+ QVariantList m_editedValues;
+
+ QString m_error;
+
mutable QString m_richText;
mutable QString m_filterText;
- mutable QStaticText m_staticText;
mutable bool m_hasBinaryData;
mutable int m_binaryDataIndex;
};
public:
ApiTraceFrame();
int number;
- QList<ApiTraceCall*> calls;
+
+ bool isEmpty() const;
+
+ ApiTrace *parentTrace() const;
+ void setParentTrace(ApiTrace *trace);
int numChildren() const;
QStaticText staticText() const;
+
+ int callIndex(ApiTraceCall *call) const;
+ ApiTraceCall *call(int idx) const;
+ void addCall(ApiTraceCall *call);
+ QList<ApiTraceCall*> calls() const;
+
+ int binaryDataSize() const;
private:
- mutable QStaticText m_staticText;
+ ApiTrace *m_parentTrace;
+ quint64 m_binaryDataSize;
+ QList<ApiTraceCall*> m_calls;
};
Q_DECLARE_METATYPE(ApiTraceFrame*);