Am Mittwoch 05 Juli 2006 18:27 schrieb Stefan Dösinger:
> Am Mittwoch 05 Juli 2006 02:27 schrieb Stefan Dösinger:
> > The DirectDraw reference counting is a bit more complex than it seemed at
> > first. The unit test in that patch shows that the IDirectDraw,
> > IDirectDraw2, IDirectDraw4 and IDirectDraw7 interfaces of one object have
> > their own reference count. The object is the same, the test with
> > SetCooperativeLevel shows this(Setting a focus window returns an error in
> > exclusive mode). Interestingly the IDirect3DX interfaces do not have
> > their own refcount, instead they are linked to a DirectDraw interface
> > refcount.
> >
> > This patch splits up the IDirectDrawImpl::ref member in ref7, ref4, ref2
> > and ref1 and changes the AddRef and Release methods accordingly. Of
> > course a number of tests to show this behavior are included :-)
> >
> > I will also send a patch which fixes some reference counting issues with
> > Palettes, and both patches depend on each other. So please apply either
> > both patches or none of them if one is wrong.
> >
> > ChangeLog:
> > Stefan Dösinger: Split the ddraw refcount
>
> Here is an updated patch, it implements the destroy condition as suggested
> by Rob and adds the accidentally dropped SetCooperativeLevel(NULL,
> DDSCL_NORMAL) cooplevel and screen mode restoring call.
Oh wait, this is not necessarilly correct. Considered that Direct3D came with 
DirectX 3.0 (I think) IDirect3D(1) isn't necessarily linked to 
IDirectDraw(1).

I will add some more tests to check for that, do not apply this patch for now

Attachment: pgpiFO78bK8Lm.pgp
Description: PGP signature



Reply via email to