]> git.cworth.org Git - apitrace/blobdiff - retrace/d3dretrace_main.cpp
d3dretrace: Basic d3d10 support.
[apitrace] / retrace / d3dretrace_main.cpp
index 6035e77b544bd221f201de3fabefbabca240082c..5806546f754a5c5014cdf9588b07a32479ebd9f8 100644 (file)
@@ -28,7 +28,7 @@
 
 #include "os_string.hpp"
 
-#include "d3dstate.hpp"
+#include "d3d9state.hpp"
 #include "retrace.hpp"
 #include "d3dretrace.hpp"
 
@@ -40,7 +40,13 @@ d3dretrace::pLastDirect3DDevice9 = NULL;
 void
 retrace::setUp(void) {
     if (retrace::debug) {
-        g_szD3D9DllName = "d3d9d.dll";
+        /* 
+         * XXX: D3D9D only works for simple things, it often introduces errors
+         * on complex traces, or traces which use unofficial D3D9 features.
+         */
+        if (0) {
+            g_szD3D9DllName = "d3d9d.dll";
+        }
     }
 }
 
@@ -49,6 +55,7 @@ void
 retrace::addCallbacks(retrace::Retracer &retracer)
 {
     retracer.addCallbacks(d3dretrace::d3d9_callbacks);
+    retracer.addCallbacks(d3dretrace::d3d10_callbacks);
 }
 
 
@@ -65,7 +72,13 @@ retrace::getSnapshot(void) {
 bool
 retrace::dumpState(std::ostream &os)
 {
-    return false;
+    if (!d3dretrace::pLastDirect3DDevice9) {
+        return false;
+    }
+
+    d3dstate::dumpDevice(os, d3dretrace::pLastDirect3DDevice9);
+
+    return true;
 }
 
 
@@ -75,6 +88,7 @@ retrace::flushRendering(void) {
 
 void
 retrace::waitForInput(void) {
+    /* TODO */
 }
 
 void