gfxreconstruct icon indicating copy to clipboard operation
gfxreconstruct copied to clipboard

Update D3D replay codegen for arrays of COM pointers

Open dgraves opened this issue 4 months ago • 3 comments

Add COM pointer array support to the replay consumer code generator:

  • Handle output arrays of COM pointers, adding them to the object table.
  • Support variable length arrays of output COM pointers.

For the generated replay override code, the SetConsumerData call was also moved behind the same IsNull conditional check performed for SetHandleLength, because the consumer data won't be set when there are no handles to associate it with. This was primarily done for the array of COM objects case, to skip initialization of a vector of objects, but also applies to the single COM object case.

IDXGIDevice::CreateSurface is currently the only function that outputs an array of COM pointers, but this change was pulled from the D3D11 branch where there are multiple D3D11 cases

dgraves avatar Oct 08 '24 23:10 dgraves