From e381485454721e6e714784c43df21e8205d3d3ad Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jos=C3=A9=20Fonseca?= Date: Sun, 11 Nov 2012 09:45:06 +0000 Subject: [PATCH] d3dretrace: Eliminate dependencies from d3d9state. --- retrace/CMakeLists.txt | 6 ------ retrace/d3d9retrace.py | 31 ++++++++++++++++++++++++++++--- retrace/d3dcommonretrace.py | 18 ++++++++++++++++-- retrace/d3dretrace.hpp | 6 ------ retrace/d3dretrace_main.cpp | 27 --------------------------- 5 files changed, 44 insertions(+), 44 deletions(-) diff --git a/retrace/CMakeLists.txt b/retrace/CMakeLists.txt index 1f260e4..0999436 100644 --- a/retrace/CMakeLists.txt +++ b/retrace/CMakeLists.txt @@ -187,8 +187,6 @@ if (WIN32 AND DirectX_D3D10_INCLUDE_DIR) d3dretrace_main.cpp d3dretrace_d3d10.cpp d3dretrace_ws.cpp - d3d9state.cpp - d3d9state_images.cpp ) target_link_libraries (d3d10retrace retrace_common @@ -223,8 +221,6 @@ if (WIN32 AND DirectX_D3D10_1_INCLUDE_DIR) d3dretrace_main.cpp d3dretrace_d3d10_1.cpp d3dretrace_ws.cpp - d3d9state.cpp - d3d9state_images.cpp ) target_link_libraries (d3d10_1retrace retrace_common @@ -259,8 +255,6 @@ if (WIN32 AND DirectX_D3D11_INCLUDE_DIR) d3dretrace_main.cpp d3dretrace_d3d11.cpp d3dretrace_ws.cpp - d3d9state.cpp - d3d9state_images.cpp ) target_link_libraries (d3d11retrace retrace_common diff --git a/retrace/d3d9retrace.py b/retrace/d3d9retrace.py index fd265ca..0564c00 100644 --- a/retrace/d3d9retrace.py +++ b/retrace/d3d9retrace.py @@ -34,14 +34,38 @@ from specs.d3d9 import * class D3DRetracer(Retracer): - def retraceModule(self, api): + def retraceApi(self, api): + print ''' +static IDirect3DDevice9 * +pLastDirect3DDevice9 = NULL; + +image::Image * +retrace::getSnapshot(void) { + if (!pLastDirect3DDevice9) { + return NULL; + } + return d3dstate::getRenderTargetImage(pLastDirect3DDevice9); +} + + +bool +retrace::dumpState(std::ostream &os) +{ + if (!pLastDirect3DDevice9) { + return false; + } + d3dstate::dumpDevice(os, pLastDirect3DDevice9); + return true; +} +''' + print '// Swizzling mapping for lock addresses' print 'static std::map _maps;' print self.table_name = 'd3dretrace::d3d_callbacks' - Retracer.retraceModule(self, api) + Retracer.retraceApi(self, api) def invokeFunction(self, function): if function.name in ('Direct3DCreate9', 'Direct3DCreate9Ex'): @@ -60,7 +84,7 @@ class D3DRetracer(Retracer): def invokeInterfaceMethod(self, interface, method): # keep track of the last used device for state dumping if interface.name in ('IDirect3DDevice9', 'IDirect3DDevice9Ex'): - print r' d3dretrace::pLastDirect3DDevice9 = _this;' + print r' pLastDirect3DDevice9 = _this;' # create windows as neccessary if method.name in ('CreateDevice', 'CreateDeviceEx', 'CreateAdditionalSwapChain'): @@ -120,6 +144,7 @@ if __name__ == '__main__': #include "d3d9imports.hpp" #include "d3d9size.hpp" #include "d3dretrace.hpp" +#include "d3d9state.hpp" ''' diff --git a/retrace/d3dcommonretrace.py b/retrace/d3dcommonretrace.py index 75262c2..bef1d09 100644 --- a/retrace/d3dcommonretrace.py +++ b/retrace/d3dcommonretrace.py @@ -33,14 +33,28 @@ import specs.stdapi as stdapi class D3DRetracer(Retracer): - def retraceModule(self, api): + def retraceApi(self, api): + print ''' +image::Image * +retrace::getSnapshot(void) { + return NULL; +} + + +bool +retrace::dumpState(std::ostream &os) +{ + return false; +} +''' + print '// Swizzling mapping for lock addresses' print 'static std::map _maps;' print self.table_name = 'd3dretrace::d3d_callbacks' - Retracer.retraceModule(self, api) + Retracer.retraceApi(self, api) def invokeFunction(self, function): # create windows as neccessary diff --git a/retrace/d3dretrace.hpp b/retrace/d3dretrace.hpp index dc174a8..1ce7b58 100644 --- a/retrace/d3dretrace.hpp +++ b/retrace/d3dretrace.hpp @@ -32,15 +32,9 @@ #include "retrace.hpp" -struct IDirect3DDevice9; - - namespace d3dretrace { -extern IDirect3DDevice9 *pLastDirect3DDevice9; - - extern const retrace::Entry d3d_callbacks[]; diff --git a/retrace/d3dretrace_main.cpp b/retrace/d3dretrace_main.cpp index a19511a..3308b58 100644 --- a/retrace/d3dretrace_main.cpp +++ b/retrace/d3dretrace_main.cpp @@ -33,10 +33,6 @@ #include "d3dretrace.hpp" -IDirect3DDevice9 * -d3dretrace::pLastDirect3DDevice9 = NULL; - - void retrace::setUp(void) { } @@ -49,29 +45,6 @@ retrace::addCallbacks(retrace::Retracer &retracer) } -image::Image * -retrace::getSnapshot(void) { - if (!d3dretrace::pLastDirect3DDevice9) { - return NULL; - } - - return d3dstate::getRenderTargetImage(d3dretrace::pLastDirect3DDevice9); -} - - -bool -retrace::dumpState(std::ostream &os) -{ - if (!d3dretrace::pLastDirect3DDevice9) { - return false; - } - - d3dstate::dumpDevice(os, d3dretrace::pLastDirect3DDevice9); - - return true; -} - - void retrace::flushRendering(void) { } -- 2.43.0