[2/5] WineD3D: SetRenderTarget doesn't change the viewport in d3d7

Stefan Dösinger stefandoesinger at gmx.at
Thu Oct 1 07:28:15 CDT 2009


Am 01.10.2009 um 13:47 schrieb Alexandre Julliard:

> Stefan Dösinger <stefandoesinger at gmx.at> writes:
>
>> Patches 2, 3 and 4 fix bug 19365. In the long run we want to get rid
>> of the dxVersion parameter that is used in this patch, but we haven't
>> agreed on a way to do this so far, so lets fix the bug first.
>
> It doesn't work here:
>
> ../../../tools/runtest -q -P wine -M ddraw.dll -T ../../.. -p  
> ddraw_test.exe.so visual.c && touch visual.ok
> visual.c:600: Test failed: Offscreen failed: Got color 0x00ff00ff,  
> expected 0x00ffffff.
> visual.c:788: Test failed: SRCALPHA on texture returned color  
> 0x007f0080, expected 0x00bf4000
> make: *** [visual.ok] Error 2
I see what's going on.

The visual offscreen rendering test doesn't change the viewport(the  
test was ported from d3d9), so it ends up with a viewport that is  
bigger than the render target, and thus invalid. Trying to set the  
viewport just returned by GetViewport fails.

The combination of the failing test and my new test shows that Windows  
clamps the currently set viewport to the render target size, if the  
viewport is bigger. GetViewport still returns the viewport from the  
stateblock. A test shows that this clamping occurs even in d3d9.




More information about the wine-devel mailing list