]> git.cworth.org Git - apitrace/blobdiff - retrace/retrace.cpp
WGL: Support float-based attrib_list parameters.
[apitrace] / retrace / retrace.cpp
index 182d1182eece7f2768ebaf15df8de70f249e14d6..bbd10b45c2cd58cb12a5cbe2892675b1c0f25ee8 100644 (file)
 #include <iostream>
 
 #include "os_time.hpp"
-#include "trace_dump.hpp"
 #include "retrace.hpp"
 
 
 namespace retrace {
 
 
+trace::DumpFlags dumpFlags = 0;
+
+
 static bool call_dumped = false;
 
 
 static void dumpCall(trace::Call &call) {
     if (verbosity >= 0 && !call_dumped) {
-        std::cout << call;
+        std::cout << std::hex << call.thread_id << std::dec << " ";
+        trace::dump(call, std::cout, dumpFlags);
         std::cout.flush();
         call_dumped = true;
     }
@@ -82,13 +85,6 @@ void Retracer::addCallbacks(const Entry *entries) {
 void Retracer::retrace(trace::Call &call) {
     call_dumped = false;
 
-    if (verbosity >= 1) {
-        if (verbosity >= 2 ||
-            !(call.flags & trace::CALL_FLAG_VERBOSE)) {
-            dumpCall(call);
-        }
-    }
-
     Callback callback = 0;
 
     trace::Id id = call.sig->id;
@@ -112,6 +108,14 @@ void Retracer::retrace(trace::Call &call) {
     assert(callback);
     assert(callbacks[id] == callback);
 
+    if (verbosity >= 1) {
+        if (verbosity >= 2 ||
+            (!(call.flags & trace::CALL_FLAG_VERBOSE) &&
+             callback != &ignore)) {
+            dumpCall(call);
+        }
+    }
+
     callback(call);
 }