[PATCH 2/5] wined3d: Create the DIB section for DDSCAPS_OWNDC surfaces on initialization.

Stefan Dösinger stefandoesinger at gmx.at
Mon Oct 31 14:38:16 CDT 2011


On Monday 31 October 2011 19:48:12 Henri Verbeet wrote:
> ---
>  dlls/ddraw/surface.c   |    3 +++
>  dlls/wined3d/surface.c |   11 +++++++++++
>  include/wine/wined3d.h |    1 +
>  3 files changed, 15 insertions(+), 0 deletions(-)
> 
> diff --git a/dlls/ddraw/surface.c b/dlls/ddraw/surface.c
> index 3860959..567d086 100644
> --- a/dlls/ddraw/surface.c
> +++ b/dlls/ddraw/surface.c
> @@ -5273,6 +5273,9 @@ HRESULT ddraw_surface_init(IDirectDrawSurfaceImpl
> *surface, IDirectDrawImpl *ddr if (desc->ddsCaps.dwCaps & DDSCAPS_ZBUFFER)
>          usage |= WINED3DUSAGE_DEPTHSTENCIL;
> 
> +    if (desc->ddsCaps.dwCaps & DDSCAPS_OWNDC)
> +        usage |= WINED3DUSAGE_OWNDC;
You would get the same effect by calling GetDC and ReleaseDC from ddraw or 
ddrawex without another usage flag. Probably ddrawex should do that since it 
sets DDSCAPS_OWNDC, assuming that IE 8 still uses ddrawex.

> +    /* Similar to lockable rendertargets above, creating the DIB section
> +     * during surface initialization prevents the sysmem pointer from
> changing +     * after a wined3d_surface_getdc() call. */
Is this a property of DDSCAPS_OWNDC, or sysmem surfaces in general? I'd expect 
that this applies to sysmem surfaces in general. Otoh we don't really want to 
create a DIB section for every sysmem surface, especially with bug 5535 in 
mind.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20111031/24154a2b/attachment.pgp>


More information about the wine-devel mailing list