From: Józef Kucia Subject: [PATCH 4/6] wined3d: Add support for 3D textures in wined3d_device_copy_sub_resource_region(). Message-Id: <20170317115757.14800-4-jkucia@codeweavers.com> Date: Fri, 17 Mar 2017 12:57:55 +0100 In-Reply-To: <20170317115757.14800-1-jkucia@codeweavers.com> References: <20170317115757.14800-1-jkucia@codeweavers.com> Signed-off-by: Józef Kucia --- dlls/wined3d/device.c | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c index cda9e18..033c490 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c @@ -4003,7 +4003,7 @@ HRESULT CDECL wined3d_device_copy_sub_resource_region(struct wined3d_device *dev dst_box.front = 0; dst_box.back = 1; } - else if (dst_resource->type == WINED3D_RTYPE_TEXTURE_2D) + else { struct wined3d_texture *dst_texture = texture_from_resource(dst_resource); struct wined3d_texture *src_texture = texture_from_resource(src_resource); @@ -4035,13 +4035,12 @@ HRESULT CDECL wined3d_device_copy_sub_resource_region(struct wined3d_device *dev if (!src_box) { - b.left = 0; b.top = 0; + b.front = 0; b.right = wined3d_texture_get_level_width(src_texture, src_level); b.bottom = wined3d_texture_get_level_height(src_texture, src_level); - b.front = 0; - b.back = 1; + b.back = wined3d_texture_get_level_depth(src_texture, src_level); src_box = &b; } else if (FAILED(wined3d_texture_check_box_dimensions(src_texture, src_level, src_box))) @@ -4052,10 +4051,10 @@ HRESULT CDECL wined3d_device_copy_sub_resource_region(struct wined3d_device *dev dst_box.left = dst_x; dst_box.top = dst_y; + dst_box.front = dst_z; dst_box.right = dst_x + (src_box->right - src_box->left); dst_box.bottom = dst_y + (src_box->bottom - src_box->top); - dst_box.front = 0; - dst_box.back = 1; + dst_box.back = dst_z + (src_box->back - src_box->front); if (FAILED(wined3d_texture_check_box_dimensions(dst_texture, dst_sub_resource_idx % dst_texture->level_count, &dst_box))) { @@ -4063,11 +4062,6 @@ HRESULT CDECL wined3d_device_copy_sub_resource_region(struct wined3d_device *dev return WINED3DERR_INVALIDCALL; } } - else - { - FIXME("Not implemented for %s resources.\n", debug_d3dresourcetype(dst_resource->type)); - return WINED3DERR_INVALIDCALL; - } wined3d_cs_emit_copy_sub_resource(device->cs, dst_resource, dst_sub_resource_idx, &dst_box, src_resource, src_sub_resource_idx, src_box); -- 2.10.2