from dlltrace import DllTracer
+from specs.stdapi import API
from specs.d3d9 import d3d9, D3DSHADER9
import specs.d3d9dxva2
interface.getMethodByName('LockRect') is not None or \
interface.getMethodByName('LockBox') is not None:
variables += [
- ('size_t', '_LockedSize', '0'),
+ ('size_t', '_MappedSize', '0'),
('VOID *', 'm_pbData', '0'),
]
def implementWrapperInterfaceMethodBody(self, interface, base, method):
if method.name in ('Unlock', 'UnlockRect', 'UnlockBox'):
- print ' if (_LockedSize && m_pbData) {'
- self.emit_memcpy('(LPBYTE)m_pbData', '(LPBYTE)m_pbData', '_LockedSize')
+ print ' if (_MappedSize && m_pbData) {'
+ self.emit_memcpy('(LPBYTE)m_pbData', '(LPBYTE)m_pbData', '_MappedSize')
print ' }'
DllTracer.implementWrapperInterfaceMethodBody(self, interface, base, method)
if method.name in ('Lock', 'LockRect', 'LockBox'):
# FIXME: handle recursive locks
print ' if (SUCCEEDED(_result) && !(Flags & D3DLOCK_READONLY)) {'
- print ' _getLockInfo(_this, %s, m_pbData, _LockedSize);' % ', '.join(method.argNames()[:-1])
+ print ' _getMapInfo(_this, %s, m_pbData, _MappedSize);' % ', '.join(method.argNames()[:-1])
print ' } else {'
print ' m_pbData = NULL;'
- print ' _LockedSize = 0;'
+ print ' _MappedSize = 0;'
print ' }'
print '#include "d3d9shader.hpp"'
print '#include "dxvaint.h"'
print
- print '''
-static inline size_t
-_declCount(const D3DVERTEXELEMENT9 *pVertexElements) {
- size_t count = 0;
- if (pVertexElements) {
- while (pVertexElements[count++].Stream != 0xff)
- ;
- }
- return count;
-}
-'''
- tracer = D3D9Tracer('d3d9.dll')
- tracer.traceApi(d3d9)
+ api = API()
+ api.addModule(d3d9)
+ tracer = D3D9Tracer()
+ tracer.traceApi(api)