]> git.cworth.org Git - apitrace/blobdiff - retrace/d3dretrace.py
Trace LockBox blobs.
[apitrace] / retrace / d3dretrace.py
index a04e01def391870b815a68ff54884f3685561f0d..14ce35934366dbde3147a274b1224cd4fdf14af4 100644 (file)
@@ -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 <iostream>
 
 #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();
         }