X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=wrappers%2Fdxgitrace.py;h=440d691e50d4dbdd11fe972c1d5d6816ae3c67aa;hb=940cdb8b143455fe2fc002ffd50f5e2ffcaf1260;hp=640f3562fdbbe8303acb82f0dae6072679d97a07;hpb=20aa935d4c87e47040d2e75bf746fcf9d5d8d6b2;p=apitrace diff --git a/wrappers/dxgitrace.py b/wrappers/dxgitrace.py index 640f356..440d691 100644 --- a/wrappers/dxgitrace.py +++ b/wrappers/dxgitrace.py @@ -42,6 +42,35 @@ class D3DCommonTracer(DllTracer): print ' DumpShader(trace::localWriter, %s, %s);' % (arg.name, arg.type.size) return + # Serialize the swapchain dimensions + if function.name == 'CreateSwapChain' and arg.name == 'pDesc': + print r' DXGI_SWAP_CHAIN_DESC *_pDesc = NULL;' + print r' DXGI_SWAP_CHAIN_DESC _Desc;' + print r' if (pDesc) {' + print r' _Desc = *pDesc;' + if not self.interface.name.endswith('DWM'): + # Obtain size from the window + print r' RECT _rect;' + print r' if (GetClientRect(pDesc->OutputWindow, &_rect)) {' + print r' if (pDesc->BufferDesc.Width == 0) {' + print r' _Desc.BufferDesc.Width = _rect.right - _rect.left;' + print r' }' + print r' if (pDesc->BufferDesc.Height == 0) {' + print r' _Desc.BufferDesc.Height = _rect.bottom - _rect.top;' + print r' }' + print r' }' + else: + # Obtain size from the output + print r' DXGI_OUTPUT_DESC _OutputDesc;' + print r' if (SUCCEEDED(pOutput->GetDesc(&_OutputDesc))) {' + print r' _Desc.BufferDesc.Width = _OutputDesc.DesktopCoordinates.right - _OutputDesc.DesktopCoordinates.left;' + print r' _Desc.BufferDesc.Height = _OutputDesc.DesktopCoordinates.bottom - _OutputDesc.DesktopCoordinates.top;' + print r' }' + print r' _pDesc = &_Desc;' + print r' }' + self.serializeValue(arg.type, '_pDesc') + return + DllTracer.serializeArgValue(self, function, arg) def enumWrapperInterfaceVariables(self, interface): @@ -93,8 +122,6 @@ if __name__ == '__main__': if 'd3d10' in moduleNames: if 'd3d10_1' in moduleNames: print r'#include "d3d10_1imports.hpp"' - # D3D10CreateBlob is duplicated in d3d10 and d3d10_1 - d3d10_1.functions = [function for function in d3d10_1.functions if function.name != 'D3D10CreateBlob'] api.addModule(d3d10_1) else: print r'#include "d3d10imports.hpp"'