This is the explanation for the d3d11 patch I submitted to wine-patches.
Stefan said Henri might have an interest so I should post the explanation
here
Comments are welcome :)
---------- Forwarded message ----------
From: Martell Malone <martellmalone(a)gmail.com>
Date: Mon, Feb 2, 2015 at 7:12 PM
Subject: Re: Add d3d11_CreateDeviceAndSwapChain
To: Stefan Dösinger <stefandoesinger(a)gmail.com>
Whoops that sent without my comments
In the d3d code we use use 8 byte extran indentation for continued lines:
>
> void function()
> {
> <4> FIXME("bla long text bla\n",
> <4> <8> param1, param2);
> }
>
I have sent an updated patch to reflect this.
I'm curious, does this improve the behavior of some application? E.g. game
> X now falls back to d3d9 without crashing due to the stub?
>
My main focus for writing this was for the mingw-w64 project that imports
the headers and libs from wine.
We were just casually missing 1 of the 3 most important functions so I sent
in this patch :)
There are 2 ways to create a device and swapchain however. You can do them
seperatly or this function does them both at once.
I assume that this returns the correct error like CreateDevice so that if
the application has a fallback it can use it.
So thats highly possible.
Kind Regards
Martell
On Mon, Feb 2, 2015 at 7:06 PM, Martell Malone <martellmalone(a)gmail.com>
wrote:
> Hi Stefan,
>
> On Mon, Feb 2, 2015 at 6:33 PM, Stefan Dösinger <stefandoesinger(a)gmail.com
> > wrote:
>
>> Hi,
>>
>> I'm curious, does this improve the behavior of some application? E.g.
>> game X now falls back to d3d9 without crashing due to the stub?
>>
>> > +HRESULT WINAPI D3D11CreateDeviceAndSwapChain(IDXGIAdapter *adapter,
>> D3D_DRIVER_TYPE driver, HMODULE swrast, UINT flags,
>> > + const D3D_FEATURE_LEVEL
>> *feature_levels, UINT levels, UINT sdk_version,
>> > + const
>> DXGI_SWAP_CHAIN_DESC *swapchain_desc, IDXGISwapChain ** swapchain,
>> > + ID3D11Device **device,
>> D3D_FEATURE_LEVEL *feature_level, ID3D11DeviceContext **context)
>> > +{
>> > + FIXME("stub: adapter %p, driver_type %s, swrast %p, flags %#x,
>> feature_levels %p, levels %#x, sdk_version %d, "
>> > + "swapchain_desc %p, swapchain %p, device %p, feature_level
>> %p, context %p\n", adapter, debug_d3d_driver_type(driver_type), swrast,
>> > + flags, feature_levels, levels, sdk_version, swapchain_desc,
>> swapchain, device, feature_level, context);
>> > + return E_OUTOFMEMORY;
>> sdk_version is an UINT, you need to print it with %u.
>>
>> In the d3d code we use use 8 byte extran indentation for continued lines:
>>
>> void function()
>> {
>> <4> FIXME("bla long text bla\n",
>> <4> <8> param1, param2);
>> }
>>
>> Cheers,
>> Stefan
>>
>>
>