#include <string.h>
#include "os_string.hpp"
+
+#include "d3dstate.hpp"
#include "retrace.hpp"
#include "d3dretrace.hpp"
+IDirect3DDevice9 *
+d3dretrace::pLastDirect3DDevice9 = NULL;
+
+
void
retrace::setUp(void) {
+ if (retrace::debug) {
+ /*
+ * 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";
+ }
+ }
}
image::Image *
retrace::getSnapshot(void) {
- return NULL;
+ if (!d3dretrace::pLastDirect3DDevice9) {
+ return NULL;
+ }
+
+ return d3dstate::getRenderTargetImage(d3dretrace::pLastDirect3DDevice9);
}
bool
retrace::dumpState(std::ostream &os)
{
- return false;
+ if (!d3dretrace::pLastDirect3DDevice9) {
+ return false;
+ }
+
+ d3dstate::dumpDevice(os, d3dretrace::pLastDirect3DDevice9);
+
+ return true;
}
void
retrace::waitForInput(void) {
+ /* TODO */
}
void