DX6 more compatibility.

Christopher J. Ahrendt celticht32 at aol.com
Fri Jun 27 06:46:45 CDT 2008


Michael Karcher wrote:
> Am Freitag, den 27.06.2008, 11:26 +0200 schrieb slawek:
>> I have one game, that needs DX6, but lowest clone version of DX is 7.
> That statement is wrong. dlls/ddraw implements DirectDraw 1 to 7. Core
> functionality for surfaces and DX7 special functions are in surface.c,
> whereas DX1-5 surfaces are implemented in surface_thunks.c.
> 
> The problem you identified is nevertheless real. DirectDraw6 comes with
> IDirectDrawSurface4, which is currently (as the vtable layout is
> compatible) implemented via IDirectDrawSurface7 (there is no
> IDirectDrawSurface{5,6}), so the DX6 version of surface directly uses
> the DX7 code, and does not use the relaxed thunk from
> IDirectDrawSurface3 (which is also used for IDirectDrawSurface and
> IDirectDrawSurface2).
> 
> If I get it right, the correct fix is to add a thunk vtable for
> IDirectDraw4 that uses relaxed parameter checks on AddAttachedSurface.
> 
> Regards,
>   Michael Karcher
> 
> 

Are we sure its 6.0 and not 6.1? from what I remember and can find 6.0 
was mainly for the dreamcast and possibly CE.  I don't have my manual 
handy (stuck in a bloody airport all night due to weather) but I think 
it should work with a 6.1 implementation which wouldn't need to be 
thunk'ed just the relaxed parm check.







More information about the wine-devel mailing list