X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;f=retrace%2Fd3d9retrace.py;h=1b89b68f5e6a159ee8f33184ee1b91b3169a2626;hb=8ce19e45daef88e84728189d7671233ef472ae03;hp=4b5853bdd3e2be3e0b987cbe2c9a9daf4b429a61;hpb=fbcb5d9fc467da2d91b330bfd62f15e7d07ed1c2;p=apitrace diff --git a/retrace/d3d9retrace.py b/retrace/d3d9retrace.py index 4b5853b..1b89b68 100644 --- a/retrace/d3d9retrace.py +++ b/retrace/d3d9retrace.py @@ -35,29 +35,8 @@ from specs.d3d9 import * class D3DRetracer(Retracer): 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 '''static d3dretrace::D3DDumper d3d9Dumper;''' + print print '// Swizzling mapping for lock addresses' print 'static std::map _maps;' @@ -84,7 +63,10 @@ retrace::dumpState(std::ostream &os) def invokeInterfaceMethod(self, interface, method): # keep track of the last used device for state dumping if interface.name in ('IDirect3DDevice9', 'IDirect3DDevice9Ex'): - print r' pLastDirect3DDevice9 = _this;' + if method.name == 'Release': + print r' d3d9Dumper.unbindDevice(_this);' + else: + print r' d3d9Dumper.bindDevice(_this);' # create windows as neccessary if method.name in ('CreateDevice', 'CreateDeviceEx', 'CreateAdditionalSwapChain'): @@ -115,12 +97,6 @@ retrace::dumpState(std::ostream &os) if method.name == 'Present': print r' d3dretrace::processEvents();' - # check errors - if str(method.type) == 'HRESULT': - print r' if (FAILED(_result)) {' - print r' retrace::warning(call) << "failed\n";' - print r' }' - if method.name in ('Lock', 'LockRect', 'LockBox'): print ' VOID *_pbData = NULL;' print ' size_t _MappedSize = 0;' @@ -144,7 +120,7 @@ if __name__ == '__main__': #include "d3d9imports.hpp" #include "d3d9size.hpp" #include "d3dretrace.hpp" -#include "d3d9state.hpp" +#include "d3dstate.hpp" '''