class ApiTrace;
+class TraceLoader;
-class VariantVisitor : public Trace::Visitor
+class VariantVisitor : public trace::Visitor
{
public:
- VariantVisitor(ApiTrace *trace)
- : m_trace(trace)
+ VariantVisitor(TraceLoader *loader)
+ : m_loader(loader)
{}
- virtual void visit(Trace::Null *);
- virtual void visit(Trace::Bool *node);
- virtual void visit(Trace::SInt *node);
- virtual void visit(Trace::UInt *node);
- virtual void visit(Trace::Float *node);
- virtual void visit(Trace::String *node);
- virtual void visit(Trace::Enum *e);
- virtual void visit(Trace::Bitmask *bitmask);
- virtual void visit(Trace::Struct *str);
- virtual void visit(Trace::Array *array);
- virtual void visit(Trace::Blob *blob);
- virtual void visit(Trace::Pointer *ptr);
+ virtual void visit(trace::Null *);
+ virtual void visit(trace::Bool *node);
+ virtual void visit(trace::SInt *node);
+ virtual void visit(trace::UInt *node);
+ virtual void visit(trace::Float *node);
+ virtual void visit(trace::Double *node);
+ virtual void visit(trace::String *node);
+ virtual void visit(trace::Enum *e);
+ virtual void visit(trace::Bitmask *bitmask);
+ virtual void visit(trace::Struct *str);
+ virtual void visit(trace::Array *array);
+ virtual void visit(trace::Blob *blob);
+ virtual void visit(trace::Pointer *ptr);
+ virtual void visit(trace::Repr *ptr);
QVariant variant() const
{
return m_variant;
}
private:
- ApiTrace *m_trace;
+ TraceLoader *m_loader;
QVariant m_variant;
};
+
+struct ApiTraceError
+{
+ int callIndex;
+ QString type;
+ QString message;
+};
+
class ApiTraceEnumSignature
{
public:
- ApiTraceEnumSignature(const QString &name = QString(),
- const QVariant &val=QVariant())\
- : m_name(name),
- m_value(val)
- {}
+ ApiTraceEnumSignature(const trace::EnumSig *sig);
+
+ QString name(signed long long value) const;
- QVariant value() const { return m_value; }
- QString name() const { return m_name; }
private:
- QString m_name;
- QVariant m_value;
+ typedef QList<QPair<QString, signed long long> > ValueList;
+ ValueList m_names;
};
class ApiEnum
{
public:
- ApiEnum(ApiTraceEnumSignature *sig=0);
+ ApiEnum(ApiTraceEnumSignature *sig=0, signed long long value = 0);
QString toString() const;
QString name() const;
private:
ApiTraceEnumSignature *m_sig;
+ signed long long m_value;
};
Q_DECLARE_METATYPE(ApiEnum);
public:
typedef QList<QPair<QString, unsigned long long> > Signature;
- ApiBitmask(const Trace::Bitmask *bitmask = 0);
+ ApiBitmask(const trace::Bitmask *bitmask = 0);
QString toString() const;
Signature signature() const;
private:
- void init(const Trace::Bitmask *bitmask);
+ void init(const trace::Bitmask *bitmask);
private:
Signature m_sig;
unsigned long long m_value;
QStringList memberNames;
};
- ApiStruct(const Trace::Struct *s = 0);
+ ApiStruct(const trace::Struct *s = 0);
- QString toString() const;
+ QString toString(bool multiLine = false) const;
Signature signature() const;
QList<QVariant> values() const;
private:
- void init(const Trace::Struct *bitmask);
+ void init(const trace::Struct *bitmask);
private:
Signature m_sig;
QList<QVariant> m_members;
class ApiArray
{
public:
- ApiArray(const Trace::Array *arr = 0);
- ApiArray(const QList<QVariant> &vals);
+ ApiArray(const trace::Array *arr = 0);
+ ApiArray(const QVector<QVariant> &vals);
- QString toString() const;
+ QString toString(bool multiLine = false) const;
- QList<QVariant> values() const;
+ QVector<QVariant> values() const;
private:
- void init(const Trace::Array *arr);
+ void init(const trace::Array *arr);
private:
- QList<QVariant> m_array;
+ QVector<QVariant> m_array;
};
Q_DECLARE_METATYPE(ApiArray);
const QList<ApiTexture> & textures() const;
const QList<ApiFramebuffer> & framebuffers() const;
+ ApiFramebuffer colorBuffer() const;
private:
QVariantMap m_parameters;
QMap<QString, QString> m_shaderSources;
class ApiTraceCall : public ApiTraceEvent
{
public:
- ApiTraceCall(ApiTraceFrame *parentFrame, const Trace::Call *tcall);
+ ApiTraceCall(ApiTraceFrame *parentFrame, TraceLoader *loader,
+ const trace::Call *tcall);
~ApiTraceCall();
int index() const;
QStringList argNames() const;
QVector<QVariant> arguments() const;
QVariant returnValue() const;
+ trace::CallFlags flags() const;
QUrl helpUrl() const;
void setHelpUrl(const QUrl &url);
ApiTraceFrame *parentFrame()const;
QVector<QVariant> editedValues() const;
void revert();
+ bool contains(const QString &str,
+ Qt::CaseSensitivity sensitivity) const;
+
ApiTrace *parentTrace() const;
QString toHtml() const;
ApiTraceCallSignature *m_signature;
QVector<QVariant> m_argValues;
QVariant m_returnValue;
+ trace::CallFlags m_flags;
ApiTraceFrame *m_parentFrame;
QVector<QVariant> m_editedValues;
class ApiTraceFrame : public ApiTraceEvent
{
public:
- ApiTraceFrame(ApiTrace *parent);
+ ApiTraceFrame(ApiTrace *parent=0);
+ ~ApiTraceFrame();
int number;
bool isEmpty() const;
+ void setParentTrace(ApiTrace *parent);
ApiTrace *parentTrace() const;
+ void setNumChildren(int num);
int numChildren() const;
+ int numChildrenToLoad() const;
QStaticText staticText() const;
int callIndex(ApiTraceCall *call) const;
ApiTraceCall *call(int idx) const;
+ ApiTraceCall *callWithIndex(int index) const;
void addCall(ApiTraceCall *call);
QVector<ApiTraceCall*> calls() const;
void setCalls(const QVector<ApiTraceCall*> &calls,
quint64 binaryDataSize);
+ ApiTraceCall *findNextCall(ApiTraceCall *from,
+ const QString &str,
+ Qt::CaseSensitivity sensitivity) const;
+
+ ApiTraceCall *findPrevCall(ApiTraceCall *from,
+ const QString &str,
+ Qt::CaseSensitivity sensitivity) const;
+
int binaryDataSize() const;
+
+ bool isLoaded() const;
+ void setLoaded(bool l);
+
+ void setLastCallIndex(unsigned index);
+ unsigned lastCallIndex() const;
+
+ void setThumbnail(const QImage & thumbnail);
+ const QImage & thumbnail() const;
+
private:
ApiTrace *m_parentTrace;
quint64 m_binaryDataSize;
QVector<ApiTraceCall*> m_calls;
+ bool m_loaded;
+ unsigned m_callsToLoad;
+ unsigned m_lastCallIndex;
+ QImage m_thumbnail;
};
Q_DECLARE_METATYPE(ApiTraceFrame*);