wined3d: Pass an IWineD3DVolumeImpl pointer to volume_add_dirty_box().

This commit is contained in:
Henri Verbeet 2011-01-18 17:55:19 +01:00 committed by Alexandre Julliard
parent ad6bc94491
commit ace5f8e60e
3 changed files with 21 additions and 23 deletions

View File

@ -63,28 +63,26 @@ static void volume_bind_and_dirtify(IWineD3DVolume *iface) {
container->baseTexture.texture_ops->texture_bind(container, FALSE);
}
void volume_add_dirty_box(IWineD3DVolume *iface, const WINED3DBOX *dirty_box)
void volume_add_dirty_box(struct IWineD3DVolumeImpl *volume, const WINED3DBOX *dirty_box)
{
IWineD3DVolumeImpl *This = (IWineD3DVolumeImpl *)iface;
This->dirty = TRUE;
volume->dirty = TRUE;
if (dirty_box)
{
This->lockedBox.Left = min(This->lockedBox.Left, dirty_box->Left);
This->lockedBox.Top = min(This->lockedBox.Top, dirty_box->Top);
This->lockedBox.Front = min(This->lockedBox.Front, dirty_box->Front);
This->lockedBox.Right = max(This->lockedBox.Right, dirty_box->Right);
This->lockedBox.Bottom = max(This->lockedBox.Bottom, dirty_box->Bottom);
This->lockedBox.Back = max(This->lockedBox.Back, dirty_box->Back);
volume->lockedBox.Left = min(volume->lockedBox.Left, dirty_box->Left);
volume->lockedBox.Top = min(volume->lockedBox.Top, dirty_box->Top);
volume->lockedBox.Front = min(volume->lockedBox.Front, dirty_box->Front);
volume->lockedBox.Right = max(volume->lockedBox.Right, dirty_box->Right);
volume->lockedBox.Bottom = max(volume->lockedBox.Bottom, dirty_box->Bottom);
volume->lockedBox.Back = max(volume->lockedBox.Back, dirty_box->Back);
}
else
{
This->lockedBox.Left = 0;
This->lockedBox.Top = 0;
This->lockedBox.Front = 0;
This->lockedBox.Right = This->currentDesc.Width;
This->lockedBox.Bottom = This->currentDesc.Height;
This->lockedBox.Back = This->currentDesc.Depth;
volume->lockedBox.Left = 0;
volume->lockedBox.Top = 0;
volume->lockedBox.Front = 0;
volume->lockedBox.Right = volume->currentDesc.Width;
volume->lockedBox.Bottom = volume->currentDesc.Height;
volume->lockedBox.Back = volume->currentDesc.Depth;
}
}
@ -255,7 +253,7 @@ static HRESULT WINAPI IWineD3DVolumeImpl_Map(IWineD3DVolume *iface,
if (!(flags & (WINED3DLOCK_NO_DIRTY_UPDATE | WINED3DLOCK_READONLY)))
{
volume_add_dirty_box(iface, &This->lockedBox);
volume_add_dirty_box(This, &This->lockedBox);
This->container->baseTexture.texture_rgb.dirty = TRUE;
This->container->baseTexture.texture_srgb.dirty = TRUE;
}
@ -368,7 +366,7 @@ HRESULT volume_init(IWineD3DVolumeImpl *volume, IWineD3DDeviceImpl *device, UINT
memset(&volume->lockedBox, 0, sizeof(volume->lockedBox));
volume->dirty = TRUE;
volume_add_dirty_box((IWineD3DVolume *)volume, NULL);
volume_add_dirty_box(volume, NULL);
return WINED3D_OK;
}

View File

@ -70,9 +70,9 @@ static void volumetexture_preload(IWineD3DBaseTextureImpl *texture, enum WINED3D
{
for (i = 0; i < texture->baseTexture.level_count; ++i)
{
IWineD3DVolume *volume = (IWineD3DVolume *)texture->baseTexture.sub_resources[i];
IWineD3DVolumeImpl *volume = (IWineD3DVolumeImpl *)texture->baseTexture.sub_resources[i];
volume_add_dirty_box(volume, NULL);
IWineD3DVolume_LoadTexture(volume, i, srgb_mode);
IWineD3DVolume_LoadTexture((IWineD3DVolume *)volume, i, srgb_mode);
}
}
else
@ -336,11 +336,11 @@ static HRESULT WINAPI IWineD3DVolumeTextureImpl_Unmap(IWineD3DVolumeTexture *ifa
static HRESULT WINAPI IWineD3DVolumeTextureImpl_AddDirtyBox(IWineD3DVolumeTexture *iface, const WINED3DBOX *dirty_box)
{
IWineD3DBaseTextureImpl *texture = (IWineD3DBaseTextureImpl *)iface;
IWineD3DVolume *volume;
IWineD3DVolumeImpl *volume;
TRACE("iface %p, dirty_box %p.\n", iface, dirty_box);
if (!(volume = (IWineD3DVolume *)basetexture_get_sub_resource(texture, 0)))
if (!(volume = (IWineD3DVolumeImpl *)basetexture_get_sub_resource(texture, 0)))
{
WARN("Failed to get sub-resource.\n");
return WINED3DERR_INVALIDCALL;

View File

@ -2001,7 +2001,7 @@ typedef struct IWineD3DVolumeImpl
BOOL dirty;
} IWineD3DVolumeImpl;
void volume_add_dirty_box(IWineD3DVolume *iface, const WINED3DBOX *dirty_box) DECLSPEC_HIDDEN;
void volume_add_dirty_box(struct IWineD3DVolumeImpl *volume, const WINED3DBOX *dirty_box) DECLSPEC_HIDDEN;
HRESULT volume_init(IWineD3DVolumeImpl *volume, IWineD3DDeviceImpl *device, UINT width,
UINT height, UINT depth, DWORD usage, enum wined3d_format_id format_id, WINED3DPOOL pool,
void *parent, const struct wined3d_parent_ops *parent_ops) DECLSPEC_HIDDEN;