4 #include "apisurface.h"
11 #include "trace_model.hpp"
14 class VariantVisitor : public Trace::Visitor
17 virtual void visit(Trace::Null *);
18 virtual void visit(Trace::Bool *node);
19 virtual void visit(Trace::SInt *node);
20 virtual void visit(Trace::UInt *node);
21 virtual void visit(Trace::Float *node);
22 virtual void visit(Trace::String *node);
23 virtual void visit(Trace::Enum *e);
24 virtual void visit(Trace::Bitmask *bitmask);
25 virtual void visit(Trace::Struct *str);
26 virtual void visit(Trace::Array *array);
27 virtual void visit(Trace::Blob *blob);
28 virtual void visit(Trace::Pointer *ptr);
30 QVariant variant() const
42 ApiPointer(int val=0);
44 QString toString() const;
48 Q_DECLARE_METATYPE(ApiPointer);
53 typedef QList<QPair<QString, unsigned long long> > Signature;
55 ApiBitmask(const Trace::Bitmask *bitmask = 0);
57 QString toString() const;
60 void init(const Trace::Bitmask *bitmask);
63 unsigned long long m_value;
65 Q_DECLARE_METATYPE(ApiBitmask);
72 QStringList memberNames;
75 ApiStruct(const Trace::Struct *s = 0);
77 QString toString() const;
80 void init(const Trace::Struct *bitmask);
83 QList<QVariant> m_members;
85 Q_DECLARE_METATYPE(ApiStruct);
90 ApiArray(const Trace::Array *arr = 0);
91 ApiArray(const QList<QVariant> &vals);
93 QString toString() const;
95 QList<QVariant> values() const;
97 void init(const Trace::Array *arr);
99 QList<QVariant> m_array;
101 Q_DECLARE_METATYPE(ApiArray);
104 QString apiVariantToString(const QVariant &variant);
108 class ApiTraceState {
111 explicit ApiTraceState(const QVariantMap &parseJson);
113 bool isEmpty() const;
114 QVariantMap parameters() const;
115 QMap<QString, QString> shaderSources() const;
116 QList<ApiTexture> textures() const;
117 QList<ApiFramebuffer> framebuffers() const;
120 QVariantMap m_parameters;
121 QMap<QString, QString> m_shaderSources;
122 QList<ApiTexture> m_textures;
123 QList<ApiFramebuffer> m_framebuffers;
125 Q_DECLARE_METATYPE(ApiTraceState);
137 ApiTraceEvent(Type t);
139 Type type() const { return m_type; }
141 virtual QStaticText staticText() const = 0;
142 virtual int numChildren() const = 0;
144 QVariantMap stateParameters() const;
145 ApiTraceState state() const;
146 void setState(const ApiTraceState &state);
150 ApiTraceState m_state;
152 Q_DECLARE_METATYPE(ApiTraceEvent*);
154 class ApiTraceCall : public ApiTraceEvent
158 ApiTraceCall(const Trace::Call *tcall);
162 QString name() const;
163 QStringList argNames() const;
164 QVariantList arguments() const;
165 QVariant returnValue() const;
166 QUrl helpUrl() const;
167 void setHelpUrl(const QUrl &url);
168 ApiTraceFrame *parentFrame()const;
169 void setParentFrame(ApiTraceFrame *frame);
171 QString toHtml() const;
172 QString filterText() const;
173 QStaticText staticText() const;
174 int numChildren() const;
175 bool hasBinaryData() const;
176 int binaryDataIndex() const;
180 QStringList m_argNames;
181 QVariantList m_argValues;
182 QVariant m_returnValue;
183 ApiTraceFrame *m_parentFrame;
186 mutable QString m_richText;
187 mutable QString m_filterText;
188 mutable QStaticText m_staticText;
189 mutable bool m_hasBinaryData;
190 mutable int m_binaryDataIndex;
192 Q_DECLARE_METATYPE(ApiTraceCall*);
194 class ApiTraceFrame : public ApiTraceEvent
199 QList<ApiTraceCall*> calls;
201 int numChildren() const;
202 QStaticText staticText() const;
204 mutable QStaticText m_staticText;
206 Q_DECLARE_METATYPE(ApiTraceFrame*);