]> git.cworth.org Git - apitrace/blobdiff - retrace/retrace.hpp
Improved profiling capabilities.
[apitrace] / retrace / retrace.hpp
index 2f75dbe6f5285cea539f22123e0d8523fa9d8d35..01d2609e8c9debaad11fb35b158e2f90c197818b 100644 (file)
@@ -36,6 +36,7 @@
 
 #include "trace_model.hpp"
 #include "trace_parser.hpp"
+#include "trace_profiler.hpp"
 
 
 namespace image {
@@ -47,48 +48,7 @@ namespace retrace {
 
 
 extern trace::Parser parser;
-
-
-/**
- * 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::Profiler profiler;
 
 
 /**
@@ -174,16 +134,6 @@ 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.
  */
@@ -198,11 +148,21 @@ 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);