コード例 #1
0
ファイル: texture.c プロジェクト: dvdhoo/wine
static void texture_cleanup(IWineD3DBaseTextureImpl *This)
{
    unsigned int i;

    TRACE("(%p) : Cleaning up\n", This);

    for (i = 0; i < This->baseTexture.level_count; ++i)
    {
        struct wined3d_resource *sub_resource = This->baseTexture.sub_resources[i];

        if (sub_resource)
        {
            IWineD3DSurfaceImpl *surface = surface_from_resource(sub_resource);

            /* 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);
            surface_set_container(surface, WINED3D_CONTAINER_NONE, NULL);
            IWineD3DSurface_Release((IWineD3DSurface *)surface);
        }
    }

    TRACE("(%p) : Cleaning up base texture\n", This);
    basetexture_cleanup((IWineD3DBaseTextureImpl *)This);
}
コード例 #2
0
ファイル: volumetexture.c プロジェクト: ElvisTulip/vbox
static void volumetexture_cleanup(IWineD3DVolumeTextureImpl *This)
{
    unsigned int i;

    TRACE("(%p) : Cleaning up.\n", This);

    for (i = 0; i < This->baseTexture.levels; ++i)
    {
        IWineD3DVolume *volume = This->volumes[i];

        if (volume)
        {
            /* Cleanup the container. */
            IWineD3DVolume_SetContainer(volume, NULL);
            IWineD3DVolume_Release(volume);
        }
    }
    basetexture_cleanup((IWineD3DBaseTexture *)This);
}
コード例 #3
0
ファイル: volumetexture.c プロジェクト: dvdhoo/wine
static void volumetexture_cleanup(IWineD3DBaseTextureImpl *This)
{
    unsigned int i;

    TRACE("(%p) : Cleaning up.\n", This);

    for (i = 0; i < This->baseTexture.level_count; ++i)
    {
        struct wined3d_resource *sub_resource = This->baseTexture.sub_resources[i];

        if (sub_resource)
        {
            IWineD3DVolumeImpl *volume = volume_from_resource(sub_resource);

            /* Cleanup the container. */
            volume_set_container(volume, NULL);
            IWineD3DVolume_Release((IWineD3DVolume *)volume);
        }
    }
    basetexture_cleanup((IWineD3DBaseTextureImpl *)This);
}
コード例 #4
0
static void texture_cleanup(IWineD3DTextureImpl *This)
{
    unsigned int i;

    TRACE("(%p) : Cleaning up\n", This);

    for (i = 0; i < This->baseTexture.levels; ++i)
    {
        if (This->surfaces[i])
        {
            /* Clean out the texture name we gave to the surface so that the
             * surface doesn't try and release it */
            surface_set_texture_name(This->surfaces[i], 0, TRUE);
            surface_set_texture_name(This->surfaces[i], 0, FALSE);
            surface_set_texture_target(This->surfaces[i], 0);
            IWineD3DSurface_SetContainer(This->surfaces[i], 0);
            IWineD3DSurface_Release(This->surfaces[i]);
        }
    }

    TRACE("(%p) : Cleaning up base texture\n", This);
    basetexture_cleanup((IWineD3DBaseTexture *)This);
}