forked from Mirrors/wine-wine
wined3d: Simply pass an IWineD3DSurfaceImpl pointer to surface_set_texture_name().
parent
d977e91b11
commit
294d9dae8f
|
@ -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);
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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,
|
||||
|
|
Loading…
Reference in New Issue