I've been studying the DXGI code with an eye for implementing the DirectX-side shared resource functionality so that an application would hopefully be able to share Direct3D textures with a Vulkan instance, and what I'm seeing has me rather confused.
IDXGIResource appears to be declared, with a number of methods, in include/dxgi.idl. I'm not clear on what exactly an IDL file is, but my impression is it's similar to a specfile, except for headers of C++ interfaces. In any case, none of the methods declared appear to have any definition anywhere in Wine. The logical conclusion would be they're automatically generated stubs.
But that doesn't make sense, because the DXGI test at dlls/dxgi/tests/device.c calls IDXGIResource_GetUsage and appears to expect it to succeed, implying that it's implemented *somewhere*. What am I missing?
On 30 June 2017 at 19:54, Ben "Root" Anderson roothorick@gmail.com wrote:
I've been studying the DXGI code with an eye for implementing the DirectX-side shared resource functionality so that an application would hopefully be able to share Direct3D textures with a Vulkan instance, and what I'm seeing has me rather confused.
IDXGIResource appears to be declared, with a number of methods, in include/dxgi.idl. I'm not clear on what exactly an IDL file is, but my impression is it's similar to a specfile, except for headers of C++ interfaces. In any case, none of the methods declared appear to have any definition anywhere in Wine. The logical conclusion would be they're automatically generated stubs.
But that doesn't make sense, because the DXGI test at dlls/dxgi/tests/device.c calls IDXGIResource_GetUsage and appears to expect it to succeed,
Actually, no, it doesn't. The IDXGISwapChain_GetBuffer() call in test_swapchain_parameters() that's supposed to return the IDXGIResource interface is marked todo_wine. I.e., it's expected to fail currently. The IDXGIResource interface is indeed currently unimplemented in Wine.