[PATCH 07/10] ddraw: Allow creating back buffer for DirectX 1 interfaces. (try 3)
oldium.pro at seznam.cz
Wed Aug 4 16:14:30 CDT 2010
On Wednesday 04 August 2010 10:10:17 Stefan Dösinger wrote:
> Am 03.08.2010
um 21:26 schrieb Oldřich Jedlička:
> > DirectX 1 interface allowed creation
of explicit back buffers, so move
> > the restrictive checks to DirectX 2+
implementations. Don't permit
> > creating of primary surface back buffer.
> The patch(as well as 9 and 10) look OK to me. Patch 6 is OK too.
Patch 8 is missing a call to wined3d to tell it about the new backbuffer.
(Apps will likely still work with the GDI renderer, but not the opengl
That is not so easy as it looks. I've tried to play with
that, but there are some difficulties and I don't have time to investigate
1. To be able to call IWineD3DDevice_SetFrontBackBuffers, the
backbuffer has to be created with Usage |= WINED3DUSAGE_RENDERTARGET
(ddraw.c, method ddraw_create_surface). No problem here (if I ignore the
fact that I don't know what the rendertarget really means).
IWineD3DDevice_SetFrontBackBuffers call in surface.c, method
ddraw_surface_attach_surface, has to use the right ordering of arguments.
Afterwards I had problems with freeing some surface (page fault).
method GetAttachedSurface needs fixing for flipping too - it doesn't return
the right surface sometimes. When I modified the method, I got other
failures/crashes with d3d tests.
From my point of view it would be better
to have the flipping for backbuffers unsupported for now - until somebody
with more understanding of internals has a better look. I'm not the right
person now. The flipping tests are the right ones to start.
from the patch doesn't add the full support, but it doesn't add more
failures and it doesn't crash (which is much better than results from my
playing this evening).
More information about the wine-devel