Module: wine Branch: master Commit: a46012eff218b7aac6359a304f1a3ed2b9c2bc6b URL: http://source.winehq.org/git/wine.git/?a=commit;h=a46012eff218b7aac6359a304f...
Author: Stefan Dösinger stefan@codeweavers.com Date: Sun Apr 22 20:30:45 2007 +0200
ddraw: Search for texture sublevels with GetAttachedSurface.
---
dlls/ddraw/ddraw.c | 14 +++++++++++--- 1 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/dlls/ddraw/ddraw.c b/dlls/ddraw/ddraw.c index df107ce..8b8308a 100644 --- a/dlls/ddraw/ddraw.c +++ b/dlls/ddraw/ddraw.c @@ -1598,12 +1598,20 @@ D3D7CB_CreateSurface(IUnknown *device, { ICOM_THIS_FROM(IDirectDrawImpl, IDirectDraw7, device); IDirectDrawSurfaceImpl *surf = This->tex_root; - int i; + int i = 0; TRACE("(%p) call back. surf=%p\n", device, surf);
/* Find the wanted mipmap. There are enough mipmaps in the chain */ - for(i = 0; i < level; i++) - surf = surf->next_complex; + while(i < level) + { + IDirectDrawSurface7 *attached; + IDirectDrawSurface7_GetAttachedSurface(ICOM_INTERFACE(surf, IDirectDrawSurface7), + &This->tex_root->surface_desc.ddsCaps, + &attached); + surf = ICOM_OBJECT(IDirectDrawSurfaceImpl, IDirectDrawSurface7, attached); + IDirectDrawSurface7_Release(attached); + i++; + }
/* Return the surface */ *Surface = surf->WineD3DSurface;