]> git.cworth.org Git - apitrace/blobdiff - retrace/retrace.hpp
Improved profiling capabilities.
[apitrace] / retrace / retrace.hpp
index f0bc4534b69d068f89518050b6361e0dfc9a0764..01d2609e8c9debaad11fb35b158e2f90c197818b 100644 (file)
 
 #include "trace_model.hpp"
 #include "trace_parser.hpp"
+#include "trace_profiler.hpp"
 
 
-namespace retrace {
-
+namespace image {
+    class Image;
+}
 
-extern trace::Parser parser;
 
+namespace retrace {
 
-/**
- * Handle map.
- *
- * It is just like a regular std::map<T, T> container, but lookups of missing
- * keys return the key instead of default constructor.
- *
- * This is necessary for several GL named objects, where one can either request
- * the implementation to generate an unique name, or pick a value never used
- * before.
- *
- * XXX: In some cases, instead of returning the key, it would make more sense
- * to return an unused data value (e.g., container count).
- */
-template <class T>
-class map
-{
-private:
-    typedef std::map<T, T> base_type;
-    base_type base;
 
-public:
-
-    T & operator[] (const T &key) {
-        typename base_type::iterator it;
-        it = base.find(key);
-        if (it == base.end()) {
-            return (base[key] = key);
-        }
-        return it->second;
-    }
-    
-    const T & operator[] (const T &key) const {
-        typename base_type::const_iterator it;
-        it = base.find(key);
-        if (it == base.end()) {
-            return (base[key] = key);
-        }
-        return it->second;
-    }
-};
+extern trace::Parser parser;
+extern trace::Profiler profiler;
 
 
 /**
@@ -169,30 +134,34 @@ public:
 };
 
 
-void
-addRegion(unsigned long long address, void *buffer, unsigned long long size);
-
-void
-delRegionByPointer(void *ptr);
-
-void *
-toPointer(trace::Value &value, bool bind = false);
-
-
 /**
  * Output verbosity when retracing files.
  */
 extern int verbosity;
 
 /**
- * Avoid expensive checks when benchmarking.
+ * Debugging checks.
  */
-extern bool benchmark;
+extern bool debug;
 
 /**
  * Add profiling data to the dump when retracing.
  */
 extern bool profiling;
+extern bool profilingCpuTimes;
+extern bool profilingGpuTimes;
+extern bool profilingPixelsDrawn;
+
+/**
+ * State dumping.
+ */
+extern bool dumpingState;
+
+
+extern bool doubleBuffer;
+extern bool coreProfile;
+
+extern unsigned frameNo;
 
 
 std::ostream &warning(trace::Call &call);
@@ -241,6 +210,31 @@ public:
 };
 
 
+void
+setUp(void);
+
+void
+addCallbacks(retrace::Retracer &retracer);
+
+void
+frameComplete(trace::Call &call);
+
+image::Image *
+getSnapshot(void);
+
+bool
+dumpState(std::ostream &os);
+
+void
+flushRendering(void);
+
+void
+waitForInput(void);
+
+void
+cleanUp(void);
+
+
 } /* namespace retrace */
 
 #endif /* _RETRACE_HPP_ */