Re: [AD] [WIN] pageflip needs fixing before 4.0

[ Thread Index | Date Index | More lists.liballeg.org/allegro-developers Archives ]


> Doesn't frighten me :p

I'm too sensitive ;-)

> I notice from your wddbmp.c (not posted on this list) you removed
> Enumeration,

I removed enumeration with EnumAttachedSurfaces() because:
- it may be indirectly the cause of the problem because of a design flaw
(only fixed in DirectX 7 afaics):
IDirectDrawSurface2::EnumAttachedSurfaces() enumerates surfaces using the
IDirectDrawSurface1 interface (!), so that you have to manually query the
IDirectDrawSurface2 interface with COM for each enumerated surface ! (fixed
in DirectX 7),
- afaics the DirectX docs (version 3, 5, 7 at least) never use
EnumAttachedSurfaces() to enumerate, rather GetAttachedSurface() that
haven't got the previously described flaw: surfaces are directly enumerated
with the IDirectDrawSurface2 interface.

> how about seeing if (int EnumSurfacesCallback) assigning the two pages the
> other way round helps (tripbuffer first)?

Yes, we could try that too.

> Surely other ports need this info?

I'm not sure, the Windows port may be the only one to use video memory pages
instead of virtual screen.

> Another thought:
> If a game uses pageflip only, we can supply a DLL (somewhere) that only
> allocs 1bb.

That could confuse the users I think.

--
Eric Botcazou
ebotcazou@xxxxxxxxxx



Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/