On Sat Mar 23 05:37:49 2024 +0000, Elizabeth Figura wrote:
I'm struggling to understand what you're saying here. Why do you think that "the d3d9on12 object" needs to exist as an object?
It doesn't necessarily need to exist as an object, but it simplifies things. For instance, in `d3d9_device_QueryInterface` we can check if the IDirect3D9 instance was created with D3D9On12 enabled by simply checking if struct d3d9on12 is not NULL.
In that function, we are also checking if pD3D12Device in struct d3d9on12 matches the d3d9 device. In this case, we can access the relative struct easily:
if (!device->d3d_parent->d3d9on12->override_list->pD3D12Device == *d3d9device*)
If struct d3d9on12 is not in struct d3d9 and instead only IDirect3DDevice9On12 is present then we would need to add a helper function to get that value.