Module: wine Branch: master Commit: 294d9dae8f8de26c00d38d4a2e457fe47dc7e4f4 URL: http://source.winehq.org/git/wine.git/?a=commit;h=294d9dae8f8de26c00d38d4a2e...
Author: Henri Verbeet hverbeet@codeweavers.com Date: Mon Apr 26 21:33:02 2010 +0200
wined3d: Simply pass an IWineD3DSurfaceImpl pointer to surface_set_texture_name().
---
dlls/wined3d/cubetexture.c | 14 +++++++------- dlls/wined3d/surface.c | 17 ++++++++--------- dlls/wined3d/texture.c | 14 +++++++------- dlls/wined3d/wined3d_private.h | 2 +- 4 files changed, 23 insertions(+), 24 deletions(-)
diff --git a/dlls/wined3d/cubetexture.c b/dlls/wined3d/cubetexture.c index e2865b2..44f6196 100644 --- a/dlls/wined3d/cubetexture.c +++ b/dlls/wined3d/cubetexture.c @@ -118,7 +118,7 @@ static void cubetexture_cleanup(IWineD3DCubeTextureImpl *This)
for (i = 0; i < sub_count; ++i) { - IWineD3DSurface *surface = (IWineD3DSurface *)This->baseTexture.sub_resources[i]; + IWineD3DSurfaceImpl *surface = (IWineD3DSurfaceImpl *)This->baseTexture.sub_resources[i];
if (surface) { @@ -126,9 +126,9 @@ static void cubetexture_cleanup(IWineD3DCubeTextureImpl *This) * surface doesn't try and release it. */ surface_set_texture_name(surface, 0, TRUE); surface_set_texture_name(surface, 0, FALSE); - surface_set_texture_target(surface, 0); - IWineD3DSurface_SetContainer(surface, NULL); - IWineD3DSurface_Release(surface); + surface_set_texture_target((IWineD3DSurface *)surface, 0); + IWineD3DSurface_SetContainer((IWineD3DSurface *)surface, NULL); + IWineD3DSurface_Release((IWineD3DSurface *)surface); } } basetexture_cleanup((IWineD3DBaseTexture *)This); @@ -216,9 +216,9 @@ static void WINAPI IWineD3DCubeTextureImpl_UnLoad(IWineD3DCubeTexture *iface)
for (i = 0; i < sub_count; ++i) { - IWineD3DSurface *surface = (IWineD3DSurface *)This->baseTexture.sub_resources[i]; + IWineD3DSurfaceImpl *surface = (IWineD3DSurfaceImpl *)This->baseTexture.sub_resources[i];
- IWineD3DSurface_UnLoad(surface); + IWineD3DSurface_UnLoad((IWineD3DSurface *)surface); surface_set_texture_name(surface, 0, TRUE); surface_set_texture_name(surface, 0, FALSE); } @@ -287,7 +287,7 @@ static HRESULT WINAPI IWineD3DCubeTextureImpl_BindTexture(IWineD3DCubeTexture *i
for (i = 0; i < sub_count; ++i) { - IWineD3DSurface *surface = (IWineD3DSurface *)This->baseTexture.sub_resources[i]; + IWineD3DSurfaceImpl *surface = (IWineD3DSurfaceImpl *)This->baseTexture.sub_resources[i];
if (This->baseTexture.is_srgb) surface_set_texture_name(surface, This->baseTexture.texture_srgb.name, TRUE); diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c index bba6ad9..efe5030 100644 --- a/dlls/wined3d/surface.c +++ b/dlls/wined3d/surface.c @@ -468,36 +468,35 @@ static void surface_force_reload(IWineD3DSurfaceImpl *surface) surface->Flags &= ~(SFLAG_ALLOCATED | SFLAG_SRGBALLOCATED); }
-void surface_set_texture_name(IWineD3DSurface *iface, GLuint new_name, BOOL srgb) +void surface_set_texture_name(IWineD3DSurfaceImpl *surface, GLuint new_name, BOOL srgb) { - IWineD3DSurfaceImpl *This = (IWineD3DSurfaceImpl *)iface; GLuint *name; DWORD flag;
+ TRACE("surface %p, new_name %u, srgb %#x.\n", surface, new_name, srgb); + if(srgb) { - name = &This->texture_name_srgb; + name = &surface->texture_name_srgb; flag = SFLAG_INSRGBTEX; } else { - name = &This->texture_name; + name = &surface->texture_name; flag = SFLAG_INTEXTURE; }
- TRACE("(%p) : setting texture name %u\n", This, new_name); - if (!*name && new_name) { /* FIXME: We shouldn't need to remove SFLAG_INTEXTURE if the * surface has no texture name yet. See if we can get rid of this. */ - if (This->Flags & flag) + if (surface->Flags & flag) ERR("Surface has SFLAG_INTEXTURE set, but no texture name\n"); - IWineD3DSurface_ModifyLocation(iface, flag, FALSE); + IWineD3DSurface_ModifyLocation((IWineD3DSurface *)surface, flag, FALSE); }
*name = new_name; - surface_force_reload(This); + surface_force_reload(surface); }
void surface_set_texture_target(IWineD3DSurface *iface, GLenum target) diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c index bcbcfa9..35d5e61 100644 --- a/dlls/wined3d/texture.c +++ b/dlls/wined3d/texture.c @@ -111,16 +111,16 @@ static void texture_cleanup(IWineD3DTextureImpl *This)
for (i = 0; i < This->baseTexture.level_count; ++i) { - IWineD3DSurface *surface = (IWineD3DSurface *)This->baseTexture.sub_resources[i]; + IWineD3DSurfaceImpl *surface = (IWineD3DSurfaceImpl *)This->baseTexture.sub_resources[i]; if (surface) { /* Clean out the texture name we gave to the surface so that the * surface doesn't try and release it */ surface_set_texture_name(surface, 0, TRUE); surface_set_texture_name(surface, 0, FALSE); - surface_set_texture_target(surface, 0); - IWineD3DSurface_SetContainer(surface, NULL); - IWineD3DSurface_Release(surface); + surface_set_texture_target((IWineD3DSurface *)surface, 0); + IWineD3DSurface_SetContainer((IWineD3DSurface *)surface, NULL); + IWineD3DSurface_Release((IWineD3DSurface *)surface); } }
@@ -208,8 +208,8 @@ static void WINAPI IWineD3DTextureImpl_UnLoad(IWineD3DTexture *iface) { */ for (i = 0; i < This->baseTexture.level_count; ++i) { - IWineD3DSurface *surface = (IWineD3DSurface *)This->baseTexture.sub_resources[i]; - IWineD3DSurface_UnLoad(surface); + IWineD3DSurfaceImpl *surface = (IWineD3DSurfaceImpl *)This->baseTexture.sub_resources[i]; + IWineD3DSurface_UnLoad((IWineD3DSurface *)surface); surface_set_texture_name(surface, 0, FALSE); /* Delete rgb name */ surface_set_texture_name(surface, 0, TRUE); /* delete srgb name */ } @@ -282,7 +282,7 @@ static HRESULT WINAPI IWineD3DTextureImpl_BindTexture(IWineD3DTexture *iface, BO
for (i = 0; i < This->baseTexture.level_count; ++i) { - IWineD3DSurface *surface = (IWineD3DSurface *)This->baseTexture.sub_resources[i]; + IWineD3DSurfaceImpl *surface = (IWineD3DSurfaceImpl *)This->baseTexture.sub_resources[i]; surface_set_texture_name(surface, gl_tex->name, This->baseTexture.is_srgb); }
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h index 27bc6aa..6ada851 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -2680,7 +2680,7 @@ void surface_load_ds_location(IWineD3DSurfaceImpl *surface, void surface_modify_ds_location(IWineD3DSurfaceImpl *surface, DWORD location) DECLSPEC_HIDDEN; void surface_set_compatible_renderbuffer(IWineD3DSurfaceImpl *surface, unsigned int width, unsigned int height) DECLSPEC_HIDDEN; -void surface_set_texture_name(IWineD3DSurface *iface, GLuint name, BOOL srgb_name) DECLSPEC_HIDDEN; +void surface_set_texture_name(IWineD3DSurfaceImpl *surface, GLuint name, BOOL srgb_name) DECLSPEC_HIDDEN; void surface_set_texture_target(IWineD3DSurface *iface, GLenum target) DECLSPEC_HIDDEN;
BOOL getColorBits(const struct wined3d_format_desc *format_desc,