RE: DX6 more compatibility.

2008-06-29 Thread Michael Karcher
Am Freitag, den 27.06.2008, 18:24 +0200 schrieb Stefan Dösinger: > On a sidenode, I think it is impossible to QueryInterface > IDirectDrawSurface7 from IDirectDrawSurface < 7, or vice versa, but I am not > sure. Nope. You can sucessfully query IDirectDrawSurface{,2,3,4,7} from IDirectDraw{,2,3,4,7}

RE: DX6 more compatibility.

2008-06-27 Thread Stefan Dösinger
> > Good summary about C++ templates and Co skipped > > And this is where I discovered > what a thunk it: Exactly a function that adjusts the this pointer > before > calling the main implementation; these thunks are unavoidable if > functions from one vtable are forwarded to functions belonging to

RE: DX6 more compatibility.

2008-06-27 Thread Stefan Dösinger
> If I get it right, the correct fix is to add a thunk vtable for > IDirectDraw4 that uses relaxed parameter checks on AddAttachedSurface. Most likely yes > [1] In fact, an API test is required. Strict or relaxed semantics might also > depend on how the surface was created (from IDirectDraw4 or >

Re: DX6 more compatibility.

2008-06-27 Thread Michael Karcher
Am Freitag, den 27.06.2008, 09:13 -0400 schrieb Chris Ahrendt: > > The problem is that currently, if the application requests a > > IDirectDrawSurface4 what it gets is a IDirectDrawSurface7. Which is (on > > the first look) not a issue, as the vtables are compatible (same > > functions with same si

Re: DX6 more compatibility.

2008-06-27 Thread Chris Ahrendt
> The problem is that currently, if the application requests a > IDirectDrawSurface4 what it gets is a IDirectDrawSurface7. Which is (on > the first look) not a issue, as the vtables are compatible (same > functions with same signature at same offsets, except for > IDirectDrawSurface7 having added

Re: DX6 more compatibility.

2008-06-27 Thread Michael Karcher
Am Freitag, den 27.06.2008, 07:46 -0400 schrieb Christopher J. Ahrendt: > > 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

Re: DX6 more compatibility.

2008-06-27 Thread Christopher J. Ahrendt
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,

Re: DX6 more compatibility.

2008-06-27 Thread Michael Karcher
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 im

DX6 more compatibility.

2008-06-27 Thread slawek
I have one game, that needs DX6, but lowest clone version of DX is 7. The game don't run, because in dlls/ddraw/surface.c:IDirectDrawSurface7Impl_AddAttachedSurface is check the surface have z-buffer. There's a notice, that the check been added, because of information in msdn about this function. T