[PATCH 01/11] ddraw: Fix setting current viewport for ddraw1.

Paul Gofman gofmanp at gmail.com
Thu May 16 14:07:56 CDT 2019


On 5/16/19 21:01, Henri Verbeet wrote:
> On Wed, 15 May 2019 at 19:37, Paul Gofman <gofmanp at gmail.com> wrote:
>> @@ -712,9 +712,13 @@ static HRESULT WINAPI d3d_device1_Execute(IDirect3DDevice *iface,
>>       if(!buffer)
>>           return DDERR_INVALIDPARAMS;
>>
>> +    if (FAILED(hr = IDirect3DDevice3_SetCurrentViewport
>> +            (&device->IDirect3DDevice3_iface, &viewport_impl->IDirect3DViewport3_iface)))
>> +        return hr;
>> +
> This is not an entirely new issue, but does remind me about the issue
> of how executing an execute buffer affects the device state. That's
> not an issue for devices created as version 1 devices, since there's
> no way to query the current state by the application. However, it's
> also possible to QI the version 1 interface from a version 2 or 3
> device.
>
I don't know whether ExecuteBuffer should preserve the previous state or 
not, I didn't test that yet. But I should note that before this patch it 
was not preserving states as well, but it would also not deactivate the 
lights from previous viewport potentially set in the earlier call to 
ExecuteBuffer or some other way.




More information about the wine-devel mailing list