X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=retrace%2Fd3dretrace.py;h=14ce35934366dbde3147a274b1224cd4fdf14af4;hb=93fa73af855d48fbd95ed50930bdb8ec50602ed6;hp=a04e01def391870b815a68ff54884f3685561f0d;hpb=7c7c9061a2862dd9238607df2693ff9451412dce;p=apitrace diff --git a/retrace/d3dretrace.py b/retrace/d3dretrace.py index a04e01d..14ce359 100644 --- a/retrace/d3dretrace.py +++ b/retrace/d3dretrace.py @@ -41,17 +41,6 @@ class D3DRetracer(Retracer): 'IDirect3DIndexBuffer9', ] - def extractArg(self, function, arg, arg_type, lvalue, rvalue): - if arg.type is D3DSHADER9: - print r' %s = extractShader((%s).toString());' % (lvalue, rvalue) - print r' if (!%s) {' % lvalue - print r' retrace::warning(call) << "failed to assemble shader\n";' - print r' return;' - print r' }' - return - - Retracer.extractArg(self, function, arg, arg_type, lvalue, rvalue) - def invokeInterfaceMethod(self, interface, method): # keep track of the last used device for state dumping if interface.name in ('IDirect3DDevice9', 'IDirect3DDevice9Ex'): @@ -71,17 +60,8 @@ class D3DRetracer(Retracer): print r' retrace::warning(call) << "failed\n";' print r' }' - if interface.name in self.bufferInterfaceNames and method.name == 'Lock': - getDescMethod = interface.getMethodByName('GetDesc') - descArg = getDescMethod.args[0] - assert descArg.output - descType = getDescMethod.args[0].type.type - - print ' if (!SizeToLock) {' - print ' %s Desc;' % descType - print ' _this->GetDesc(&Desc);' - print ' SizeToLock = Desc.Size;' - print ' }' + if method.name in ('Lock', 'LockRect', 'LockBox'): + print ' size_t _LockedSize = _getLockSize(_this, %s);' % ', '.join(method.argNames()[:-1]) if __name__ == '__main__': @@ -91,6 +71,7 @@ if __name__ == '__main__': #include #include "d3d9imports.hpp" +#include "d3dsize.hpp" #include "d3dretrace.hpp" @@ -220,7 +201,7 @@ found: HRESULT hr; hr = pfnD3DXAssembleShader(pSrcData, strlen(pSrcData), NULL, NULL, 0, &pTokens, NULL); - if (hr == D3D_OK) { + if (SUCCEEDED(hr)) { return (DWORD *)pTokens->GetBufferPointer(); }