]> git.cworth.org Git - apitrace/blobdiff - d3d9trace.py
snapdiff: Add filename column to HTML report
[apitrace] / d3d9trace.py
index d2ff7d5fccf60ec1ae4fdc63a52629480f77085c..4f40194ec5af3a4841f4e21148fa5f494a3388ea 100644 (file)
@@ -42,27 +42,27 @@ class D3D9Tracer(DllTracer):
         DllTracer.declareWrapperInterfaceVariables(self, interface)
         
         if interface.name == 'IDirect3DVertexBuffer9':
-            print '    UINT m_OffsetToLock;'
             print '    UINT m_SizeToLock;'
             print '    VOID *m_pbData;'
 
-    def implementWrapperInterfaceMethodBody(self, interface, method):
+    def implementWrapperInterfaceMethodBody(self, interface, base, method):
         if interface.name == 'IDirect3DVertexBuffer9' and method.name == 'Unlock':
             print '    if (m_pbData) {'
-            print '        if (!m_SizeToLock) {'
-            print '            D3DVERTEXBUFFER_DESC Desc;'
-            print '            m_pInstance->GetDesc(&Desc);'
-            print '            m_SizeToLock = Desc.Size;'
-            print '        }'
-            self.emit_memcpy('(LPBYTE)m_pbData + m_OffsetToLock', '(LPBYTE)m_pbData + m_OffsetToLock', 'm_SizeToLock')
+            self.emit_memcpy('(LPBYTE)m_pbData', '(LPBYTE)m_pbData', 'm_SizeToLock')
             print '    }'
 
-        DllTracer.implementWrapperInterfaceMethodBody(self, interface, method)
+        DllTracer.implementWrapperInterfaceMethodBody(self, interface, base, method)
 
         if interface.name == 'IDirect3DVertexBuffer9' and method.name == 'Lock':
+            # FIXME: handle recursive locks
             print '    if (__result == D3D_OK && !(Flags & D3DLOCK_READONLY)) {'
-            print '        m_OffsetToLock = OffsetToLock;'
-            print '        m_SizeToLock = SizeToLock;'
+            print '        if (SizeToLock) {'
+            print '            m_SizeToLock = SizeToLock;'
+            print '        } else {'
+            print '            D3DVERTEXBUFFER_DESC Desc;'
+            print '            m_pInstance->GetDesc(&Desc);'
+            print '            m_SizeToLock = Desc.Size;'
+            print '        }'
             print '        m_pbData = *ppbData;'
             print '    } else {'
             print '        m_pbData = NULL;'
@@ -70,6 +70,8 @@ class D3D9Tracer(DllTracer):
 
 
 if __name__ == '__main__':
+    print '#define INITGUID'
+    print
     print '#include "trace_writer_local.hpp"'
     print '#include "os.hpp"'
     print