Commit df612027 authored by Henri Verbeet's avatar Henri Verbeet Committed by Alexandre Julliard

wined3d: Introduce a helper function to assign wined3d_box values.

parent cefd0638
...@@ -976,14 +976,8 @@ static void STDMETHODCALLTYPE d3d11_immediate_context_CopySubresourceRegion(ID3D ...@@ -976,14 +976,8 @@ static void STDMETHODCALLTYPE d3d11_immediate_context_CopySubresourceRegion(ID3D
src_resource, src_subresource_idx, src_box); src_resource, src_subresource_idx, src_box);
if (src_box) if (src_box)
{ wined3d_box_set(&wined3d_src_box, src_box->left, src_box->top,
wined3d_src_box.left = src_box->left; src_box->right, src_box->bottom, src_box->front, src_box->back);
wined3d_src_box.top = src_box->top;
wined3d_src_box.front = src_box->front;
wined3d_src_box.right = src_box->right;
wined3d_src_box.bottom = src_box->bottom;
wined3d_src_box.back = src_box->back;
}
wined3d_dst_resource = wined3d_resource_from_d3d11_resource(dst_resource); wined3d_dst_resource = wined3d_resource_from_d3d11_resource(dst_resource);
wined3d_src_resource = wined3d_resource_from_d3d11_resource(src_resource); wined3d_src_resource = wined3d_resource_from_d3d11_resource(src_resource);
...@@ -1020,14 +1014,7 @@ static void STDMETHODCALLTYPE d3d11_immediate_context_UpdateSubresource(ID3D11De ...@@ -1020,14 +1014,7 @@ static void STDMETHODCALLTYPE d3d11_immediate_context_UpdateSubresource(ID3D11De
iface, resource, subresource_idx, box, data, row_pitch, depth_pitch); iface, resource, subresource_idx, box, data, row_pitch, depth_pitch);
if (box) if (box)
{ wined3d_box_set(&wined3d_box, box->left, box->top, box->right, box->bottom, box->front, box->back);
wined3d_box.left = box->left;
wined3d_box.top = box->top;
wined3d_box.front = box->front;
wined3d_box.right = box->right;
wined3d_box.bottom = box->bottom;
wined3d_box.back = box->back;
}
wined3d_resource = wined3d_resource_from_d3d11_resource(resource); wined3d_resource = wined3d_resource_from_d3d11_resource(resource);
wined3d_mutex_lock(); wined3d_mutex_lock();
...@@ -3820,14 +3807,8 @@ static void STDMETHODCALLTYPE d3d10_device_CopySubresourceRegion(ID3D10Device1 * ...@@ -3820,14 +3807,8 @@ static void STDMETHODCALLTYPE d3d10_device_CopySubresourceRegion(ID3D10Device1 *
src_resource, src_subresource_idx, src_box); src_resource, src_subresource_idx, src_box);
if (src_box) if (src_box)
{ wined3d_box_set(&wined3d_src_box, src_box->left, src_box->top,
wined3d_src_box.left = src_box->left; src_box->right, src_box->bottom, src_box->front, src_box->back);
wined3d_src_box.top = src_box->top;
wined3d_src_box.front = src_box->front;
wined3d_src_box.right = src_box->right;
wined3d_src_box.bottom = src_box->bottom;
wined3d_src_box.back = src_box->back;
}
wined3d_dst_resource = wined3d_resource_from_d3d10_resource(dst_resource); wined3d_dst_resource = wined3d_resource_from_d3d10_resource(dst_resource);
wined3d_src_resource = wined3d_resource_from_d3d10_resource(src_resource); wined3d_src_resource = wined3d_resource_from_d3d10_resource(src_resource);
......
...@@ -240,12 +240,7 @@ static HRESULT WINAPI d3d8_surface_LockRect(IDirect3DSurface8 *iface, ...@@ -240,12 +240,7 @@ static HRESULT WINAPI d3d8_surface_LockRect(IDirect3DSurface8 *iface,
locked_rect->pBits = NULL; locked_rect->pBits = NULL;
return D3DERR_INVALIDCALL; return D3DERR_INVALIDCALL;
} }
box.left = rect->left; wined3d_box_set(&box, rect->left, rect->top, rect->right, rect->bottom, 0, 1);
box.top = rect->top;
box.right = rect->right;
box.bottom = rect->bottom;
box.front = 0;
box.back = 1;
} }
hr = wined3d_resource_map(wined3d_texture_get_resource(surface->wined3d_texture), surface->sub_resource_idx, hr = wined3d_resource_map(wined3d_texture_get_resource(surface->wined3d_texture), surface->sub_resource_idx,
......
...@@ -340,12 +340,7 @@ static HRESULT WINAPI d3d8_texture_2d_AddDirtyRect(IDirect3DTexture8 *iface, con ...@@ -340,12 +340,7 @@ static HRESULT WINAPI d3d8_texture_2d_AddDirtyRect(IDirect3DTexture8 *iface, con
{ {
struct wined3d_box dirty_region; struct wined3d_box dirty_region;
dirty_region.left = dirty_rect->left; wined3d_box_set(&dirty_region, dirty_rect->left, dirty_rect->top, dirty_rect->right, dirty_rect->bottom, 0, 1);
dirty_region.top = dirty_rect->top;
dirty_region.right = dirty_rect->right;
dirty_region.bottom = dirty_rect->bottom;
dirty_region.front = 0;
dirty_region.back = 1;
hr = wined3d_texture_add_dirty_region(texture->wined3d_texture, 0, &dirty_region); hr = wined3d_texture_add_dirty_region(texture->wined3d_texture, 0, &dirty_region);
} }
wined3d_mutex_unlock(); wined3d_mutex_unlock();
...@@ -709,12 +704,7 @@ static HRESULT WINAPI d3d8_texture_cube_AddDirtyRect(IDirect3DCubeTexture8 *ifac ...@@ -709,12 +704,7 @@ static HRESULT WINAPI d3d8_texture_cube_AddDirtyRect(IDirect3DCubeTexture8 *ifac
{ {
struct wined3d_box dirty_region; struct wined3d_box dirty_region;
dirty_region.left = dirty_rect->left; wined3d_box_set(&dirty_region, dirty_rect->left, dirty_rect->top, dirty_rect->right, dirty_rect->bottom, 0, 1);
dirty_region.top = dirty_rect->top;
dirty_region.right = dirty_rect->right;
dirty_region.bottom = dirty_rect->bottom;
dirty_region.front = 0;
dirty_region.back = 1;
hr = wined3d_texture_add_dirty_region(texture->wined3d_texture, face, &dirty_region); hr = wined3d_texture_add_dirty_region(texture->wined3d_texture, face, &dirty_region);
} }
wined3d_mutex_unlock(); wined3d_mutex_unlock();
......
...@@ -1402,14 +1402,7 @@ static HRESULT WINAPI d3d9_device_UpdateSurface(IDirect3DDevice9Ex *iface, ...@@ -1402,14 +1402,7 @@ static HRESULT WINAPI d3d9_device_UpdateSurface(IDirect3DDevice9Ex *iface,
iface, src_surface, src_rect, dst_surface, dst_point); iface, src_surface, src_rect, dst_surface, dst_point);
if (src_rect) if (src_rect)
{ wined3d_box_set(&src_box, src_rect->left, src_rect->top, src_rect->right, src_rect->bottom, 0, 1);
src_box.left = src_rect->left;
src_box.top = src_rect->top;
src_box.right = src_rect->right;
src_box.bottom = src_rect->bottom;
src_box.front = 0;
src_box.back = 1;
}
wined3d_mutex_lock(); wined3d_mutex_lock();
hr = wined3d_device_copy_sub_resource_region(device->wined3d_device, hr = wined3d_device_copy_sub_resource_region(device->wined3d_device,
......
...@@ -245,14 +245,7 @@ static HRESULT WINAPI d3d9_surface_LockRect(IDirect3DSurface9 *iface, ...@@ -245,14 +245,7 @@ static HRESULT WINAPI d3d9_surface_LockRect(IDirect3DSurface9 *iface,
iface, locked_rect, wine_dbgstr_rect(rect), flags); iface, locked_rect, wine_dbgstr_rect(rect), flags);
if (rect) if (rect)
{ wined3d_box_set(&box, rect->left, rect->top, rect->right, rect->bottom, 0, 1);
box.left = rect->left;
box.top = rect->top;
box.right = rect->right;
box.bottom = rect->bottom;
box.front = 0;
box.back = 1;
}
wined3d_mutex_lock(); wined3d_mutex_lock();
hr = wined3d_resource_map(wined3d_texture_get_resource(surface->wined3d_texture), surface->sub_resource_idx, hr = wined3d_resource_map(wined3d_texture_get_resource(surface->wined3d_texture), surface->sub_resource_idx,
......
...@@ -382,12 +382,7 @@ static HRESULT WINAPI d3d9_texture_2d_AddDirtyRect(IDirect3DTexture9 *iface, con ...@@ -382,12 +382,7 @@ static HRESULT WINAPI d3d9_texture_2d_AddDirtyRect(IDirect3DTexture9 *iface, con
{ {
struct wined3d_box dirty_region; struct wined3d_box dirty_region;
dirty_region.left = dirty_rect->left; wined3d_box_set(&dirty_region, dirty_rect->left, dirty_rect->top, dirty_rect->right, dirty_rect->bottom, 0, 1);
dirty_region.top = dirty_rect->top;
dirty_region.right = dirty_rect->right;
dirty_region.bottom = dirty_rect->bottom;
dirty_region.front = 0;
dirty_region.back = 1;
hr = wined3d_texture_add_dirty_region(texture->wined3d_texture, 0, &dirty_region); hr = wined3d_texture_add_dirty_region(texture->wined3d_texture, 0, &dirty_region);
} }
wined3d_mutex_unlock(); wined3d_mutex_unlock();
...@@ -797,12 +792,7 @@ static HRESULT WINAPI d3d9_texture_cube_AddDirtyRect(IDirect3DCubeTexture9 *ifa ...@@ -797,12 +792,7 @@ static HRESULT WINAPI d3d9_texture_cube_AddDirtyRect(IDirect3DCubeTexture9 *ifa
{ {
struct wined3d_box dirty_region; struct wined3d_box dirty_region;
dirty_region.left = dirty_rect->left; wined3d_box_set(&dirty_region, dirty_rect->left, dirty_rect->top, dirty_rect->right, dirty_rect->bottom, 0, 1);
dirty_region.top = dirty_rect->top;
dirty_region.right = dirty_rect->right;
dirty_region.bottom = dirty_rect->bottom;
dirty_region.front = 0;
dirty_region.back = 1;
hr = wined3d_texture_add_dirty_region(texture->wined3d_texture, face, &dirty_region); hr = wined3d_texture_add_dirty_region(texture->wined3d_texture, face, &dirty_region);
} }
wined3d_mutex_unlock(); wined3d_mutex_unlock();
......
...@@ -985,12 +985,7 @@ static HRESULT surface_lock(struct ddraw_surface *surface, ...@@ -985,12 +985,7 @@ static HRESULT surface_lock(struct ddraw_surface *surface,
wined3d_mutex_unlock(); wined3d_mutex_unlock();
return DDERR_INVALIDPARAMS; return DDERR_INVALIDPARAMS;
} }
box.left = rect->left; wined3d_box_set(&box, rect->left, rect->top, rect->right, rect->bottom, 0, 1);
box.top = rect->top;
box.right = rect->right;
box.bottom = rect->bottom;
box.front = 0;
box.back = 1;
} }
if (surface->surface_desc.ddsCaps.dwCaps & DDSCAPS_PRIMARYSURFACE) if (surface->surface_desc.ddsCaps.dwCaps & DDSCAPS_PRIMARYSURFACE)
......
...@@ -3876,13 +3876,7 @@ void CDECL wined3d_device_copy_resource(struct wined3d_device *device, ...@@ -3876,13 +3876,7 @@ void CDECL wined3d_device_copy_resource(struct wined3d_device *device,
if (dst_resource->type == WINED3D_RTYPE_BUFFER) if (dst_resource->type == WINED3D_RTYPE_BUFFER)
{ {
box.left = 0; wined3d_box_set(&box, 0, 0, src_resource->size, 1, 0, 1);
box.top = 0;
box.right = src_resource->size;
box.bottom = 1;
box.front = 0;
box.back = 1;
wined3d_cs_emit_blt_sub_resource(device->cs, dst_resource, 0, &box, wined3d_cs_emit_blt_sub_resource(device->cs, dst_resource, 0, &box,
src_resource, 0, &box, 0, NULL, WINED3D_TEXF_POINT); src_resource, 0, &box, 0, NULL, WINED3D_TEXF_POINT);
return; return;
...@@ -3908,13 +3902,10 @@ void CDECL wined3d_device_copy_resource(struct wined3d_device *device, ...@@ -3908,13 +3902,10 @@ void CDECL wined3d_device_copy_resource(struct wined3d_device *device,
for (i = 0; i < dst_texture->level_count; ++i) for (i = 0; i < dst_texture->level_count; ++i)
{ {
box.left = 0; wined3d_box_set(&box, 0, 0,
box.top = 0; wined3d_texture_get_level_width(dst_texture, i),
box.right = wined3d_texture_get_level_width(dst_texture, i); wined3d_texture_get_level_height(dst_texture, i),
box.bottom = wined3d_texture_get_level_height(dst_texture, i); 0, wined3d_texture_get_level_depth(dst_texture, i));
box.front = 0;
box.back = wined3d_texture_get_level_depth(dst_texture, i);
for (j = 0; j < dst_texture->layer_count; ++j) for (j = 0; j < dst_texture->layer_count; ++j)
{ {
unsigned int idx = j * dst_texture->level_count + i; unsigned int idx = j * dst_texture->level_count + i;
...@@ -3975,12 +3966,7 @@ HRESULT CDECL wined3d_device_copy_sub_resource_region(struct wined3d_device *dev ...@@ -3975,12 +3966,7 @@ HRESULT CDECL wined3d_device_copy_sub_resource_region(struct wined3d_device *dev
if (!src_box) if (!src_box)
{ {
b.left = 0; wined3d_box_set(&b, 0, 0, src_resource->size, 1, 0, 1);
b.top = 0;
b.right = src_resource->size;
b.bottom = 1;
b.front = 0;
b.back = 1;
src_box = &b; src_box = &b;
} }
else if ((src_box->left >= src_box->right else if ((src_box->left >= src_box->right
...@@ -3999,12 +3985,7 @@ HRESULT CDECL wined3d_device_copy_sub_resource_region(struct wined3d_device *dev ...@@ -3999,12 +3985,7 @@ HRESULT CDECL wined3d_device_copy_sub_resource_region(struct wined3d_device *dev
return WINED3DERR_INVALIDCALL; return WINED3DERR_INVALIDCALL;
} }
dst_box.left = dst_x; wined3d_box_set(&dst_box, dst_x, 0, dst_x + (src_box->right - src_box->left), 1, 0, 1);
dst_box.top = 0;
dst_box.right = dst_x + (src_box->right - src_box->left);
dst_box.bottom = 1;
dst_box.front = 0;
dst_box.back = 1;
} }
else if (dst_resource->type == WINED3D_RTYPE_TEXTURE_2D) else if (dst_resource->type == WINED3D_RTYPE_TEXTURE_2D)
{ {
...@@ -4038,13 +4019,8 @@ HRESULT CDECL wined3d_device_copy_sub_resource_region(struct wined3d_device *dev ...@@ -4038,13 +4019,8 @@ HRESULT CDECL wined3d_device_copy_sub_resource_region(struct wined3d_device *dev
if (!src_box) if (!src_box)
{ {
wined3d_box_set(&b, 0, 0, wined3d_texture_get_level_width(src_texture, src_level),
b.left = 0; wined3d_texture_get_level_height(src_texture, src_level), 0, 1);
b.top = 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;
src_box = &b; src_box = &b;
} }
else if (FAILED(wined3d_texture_check_box_dimensions(src_texture, src_level, src_box))) else if (FAILED(wined3d_texture_check_box_dimensions(src_texture, src_level, src_box)))
...@@ -4053,12 +4029,8 @@ HRESULT CDECL wined3d_device_copy_sub_resource_region(struct wined3d_device *dev ...@@ -4053,12 +4029,8 @@ HRESULT CDECL wined3d_device_copy_sub_resource_region(struct wined3d_device *dev
return WINED3DERR_INVALIDCALL; return WINED3DERR_INVALIDCALL;
} }
dst_box.left = dst_x; wined3d_box_set(&dst_box, dst_x, dst_y, dst_x + (src_box->right - src_box->left),
dst_box.top = dst_y; dst_y + (src_box->bottom - src_box->top), 0, 1);
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;
if (FAILED(wined3d_texture_check_box_dimensions(dst_texture, if (FAILED(wined3d_texture_check_box_dimensions(dst_texture,
dst_sub_resource_idx % dst_texture->level_count, &dst_box))) dst_sub_resource_idx % dst_texture->level_count, &dst_box)))
{ {
...@@ -4124,12 +4096,7 @@ void CDECL wined3d_device_update_sub_resource(struct wined3d_device *device, str ...@@ -4124,12 +4096,7 @@ void CDECL wined3d_device_update_sub_resource(struct wined3d_device *device, str
if (!box) if (!box)
{ {
b.left = 0; wined3d_box_set(&b, 0, 0, width, height, 0, depth);
b.top = 0;
b.right = width;
b.bottom = height;
b.front = 0;
b.back = depth;
box = &b; box = &b;
} }
else if (box->left >= box->right || box->right > width else if (box->left >= box->right || box->right > width
......
...@@ -2659,4 +2659,15 @@ static inline unsigned int wined3d_log2i(unsigned int x) ...@@ -2659,4 +2659,15 @@ static inline unsigned int wined3d_log2i(unsigned int x)
#endif #endif
} }
static inline void wined3d_box_set(struct wined3d_box *box, unsigned int left, unsigned int top,
unsigned int right, unsigned int bottom, unsigned int front, unsigned int back)
{
box->left = left;
box->top = top;
box->right = right;
box->bottom = bottom;
box->front = front;
box->back = back;
}
#endif /* __WINE_WINED3D_H */ #endif /* __WINE_WINED3D_H */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment