wined3d: Pass a wined3d_device_context to wined3d_device_clear_rendertarget_view().

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Zebediah Figura 2021-04-07 21:20:03 -05:00 committed by Alexandre Julliard
parent 4880afdc8e
commit fbd1e2eb6b
6 changed files with 26 additions and 25 deletions

View file

@ -1292,7 +1292,7 @@ static void STDMETHODCALLTYPE d3d11_immediate_context_CopyStructureCount(ID3D11D
static void STDMETHODCALLTYPE d3d11_immediate_context_ClearRenderTargetView(ID3D11DeviceContext1 *iface,
ID3D11RenderTargetView *render_target_view, const float color_rgba[4])
{
struct d3d_device *device = device_from_immediate_ID3D11DeviceContext1(iface);
struct d3d11_immediate_context *context = impl_from_ID3D11DeviceContext1(iface);
struct d3d_rendertarget_view *view = unsafe_impl_from_ID3D11RenderTargetView(render_target_view);
const struct wined3d_color color = {color_rgba[0], color_rgba[1], color_rgba[2], color_rgba[3]};
HRESULT hr;
@ -1304,7 +1304,7 @@ static void STDMETHODCALLTYPE d3d11_immediate_context_ClearRenderTargetView(ID3D
return;
wined3d_mutex_lock();
if (FAILED(hr = wined3d_device_clear_rendertarget_view(device->wined3d_device, view->wined3d_view, NULL,
if (FAILED(hr = wined3d_device_context_clear_rendertarget_view(context->wined3d_context, view->wined3d_view, NULL,
WINED3DCLEAR_TARGET, &color, 0.0f, 0)))
ERR("Failed to clear view, hr %#x.\n", hr);
wined3d_mutex_unlock();
@ -1336,7 +1336,7 @@ static void STDMETHODCALLTYPE d3d11_immediate_context_ClearUnorderedAccessViewFl
static void STDMETHODCALLTYPE d3d11_immediate_context_ClearDepthStencilView(ID3D11DeviceContext1 *iface,
ID3D11DepthStencilView *depth_stencil_view, UINT flags, FLOAT depth, UINT8 stencil)
{
struct d3d_device *device = device_from_immediate_ID3D11DeviceContext1(iface);
struct d3d11_immediate_context *context = impl_from_ID3D11DeviceContext1(iface);
struct d3d_depthstencil_view *view = unsafe_impl_from_ID3D11DepthStencilView(depth_stencil_view);
DWORD wined3d_flags;
HRESULT hr;
@ -1350,7 +1350,7 @@ static void STDMETHODCALLTYPE d3d11_immediate_context_ClearDepthStencilView(ID3D
wined3d_flags = wined3d_clear_flags_from_d3d11_clear_flags(flags);
wined3d_mutex_lock();
if (FAILED(hr = wined3d_device_clear_rendertarget_view(device->wined3d_device, view->wined3d_view, NULL,
if (FAILED(hr = wined3d_device_context_clear_rendertarget_view(context->wined3d_context, view->wined3d_view, NULL,
wined3d_flags, NULL, depth, stencil)))
ERR("Failed to clear view, hr %#x.\n", hr);
wined3d_mutex_unlock();
@ -4933,8 +4933,8 @@ static void STDMETHODCALLTYPE d3d10_device_ClearRenderTargetView(ID3D10Device1 *
return;
wined3d_mutex_lock();
if (FAILED(hr = wined3d_device_clear_rendertarget_view(device->wined3d_device, view->wined3d_view, NULL,
WINED3DCLEAR_TARGET, &color, 0.0f, 0)))
if (FAILED(hr = wined3d_device_context_clear_rendertarget_view(device->immediate_context.wined3d_context,
view->wined3d_view, NULL, WINED3DCLEAR_TARGET, &color, 0.0f, 0)))
ERR("Failed to clear view, hr %#x.\n", hr);
wined3d_mutex_unlock();
}
@ -4956,8 +4956,8 @@ static void STDMETHODCALLTYPE d3d10_device_ClearDepthStencilView(ID3D10Device1 *
wined3d_flags = wined3d_clear_flags_from_d3d11_clear_flags(flags);
wined3d_mutex_lock();
if (FAILED(hr = wined3d_device_clear_rendertarget_view(device->wined3d_device, view->wined3d_view, NULL,
wined3d_flags, NULL, depth, stencil)))
if (FAILED(hr = wined3d_device_context_clear_rendertarget_view(device->immediate_context.wined3d_context,
view->wined3d_view, NULL, wined3d_flags, NULL, depth, stencil)))
ERR("Failed to clear view, hr %#x.\n", hr);
wined3d_mutex_unlock();
}

View file

@ -1939,7 +1939,7 @@ static HRESULT WINAPI d3d9_device_ColorFill(IDirect3DDevice9Ex *iface,
wined3d_device_apply_stateblock(device->wined3d_device, device->state);
rtv = d3d9_surface_acquire_rendertarget_view(surface_impl);
hr = wined3d_device_clear_rendertarget_view(device->wined3d_device,
hr = wined3d_device_context_clear_rendertarget_view(device->immediate_context,
rtv, rect, WINED3DCLEAR_TARGET, &c, 0.0f, 0);
d3d9_surface_release_rendertarget_view(surface_impl, rtv);
if (SUCCEEDED(hr) && surface_impl->texture)

View file

@ -1513,7 +1513,8 @@ static HRESULT ddraw_surface_blt(struct ddraw_surface *dst_surface, const RECT *
struct ddraw_surface *src_surface, const RECT *src_rect, DWORD flags, DWORD fill_colour,
const struct wined3d_blt_fx *fx, enum wined3d_texture_filter_type filter)
{
struct wined3d_device *wined3d_device = dst_surface->ddraw->wined3d_device;
struct ddraw *ddraw = dst_surface->ddraw;
struct wined3d_device *wined3d_device = ddraw->wined3d_device;
struct wined3d_color colour;
DWORD wined3d_flags;
@ -1527,9 +1528,9 @@ static HRESULT ddraw_surface_blt(struct ddraw_surface *dst_surface, const RECT *
dst_surface->palette, fill_colour, &colour))
return DDERR_INVALIDPARAMS;
wined3d_device_apply_stateblock(wined3d_device, dst_surface->ddraw->state);
wined3d_device_apply_stateblock(wined3d_device, ddraw->state);
ddraw_surface_get_draw_texture(dst_surface, dst_rect ? DDRAW_SURFACE_RW : DDRAW_SURFACE_WRITE);
return wined3d_device_clear_rendertarget_view(wined3d_device,
return wined3d_device_context_clear_rendertarget_view(ddraw->immediate_context,
ddraw_surface_get_rendertarget_view(dst_surface),
dst_rect, wined3d_flags, &colour, 0.0f, 0);
}
@ -1544,9 +1545,9 @@ static HRESULT ddraw_surface_blt(struct ddraw_surface *dst_surface, const RECT *
dst_surface->palette, fill_colour, &colour))
return DDERR_INVALIDPARAMS;
wined3d_device_apply_stateblock(wined3d_device, dst_surface->ddraw->state);
wined3d_device_apply_stateblock(wined3d_device, ddraw->state);
ddraw_surface_get_draw_texture(dst_surface, dst_rect ? DDRAW_SURFACE_RW : DDRAW_SURFACE_WRITE);
return wined3d_device_clear_rendertarget_view(wined3d_device,
return wined3d_device_context_clear_rendertarget_view(ddraw->immediate_context,
ddraw_surface_get_rendertarget_view(dst_surface),
dst_rect, wined3d_flags, NULL, colour.r, 0);
}
@ -1561,7 +1562,7 @@ static HRESULT ddraw_surface_blt(struct ddraw_surface *dst_surface, const RECT *
if (!(flags & DDBLT_ASYNC))
wined3d_flags |= WINED3D_BLT_SYNCHRONOUS;
return wined3d_device_context_blt(dst_surface->ddraw->immediate_context,
return wined3d_device_context_blt(ddraw->immediate_context,
ddraw_surface_get_any_texture(dst_surface, DDRAW_SURFACE_RW), dst_surface->sub_resource_idx, dst_rect,
ddraw_surface_get_any_texture(src_surface, DDRAW_SURFACE_READ), src_surface->sub_resource_idx, src_rect,
wined3d_flags, fx, filter);

View file

@ -5201,15 +5201,15 @@ void CDECL wined3d_device_context_resolve_sub_resource(struct wined3d_device_con
src_texture, src_sub_resource_idx, &src_rect, 0, &fx, WINED3D_TEXF_POINT);
}
HRESULT CDECL wined3d_device_clear_rendertarget_view(struct wined3d_device *device,
struct wined3d_rendertarget_view *view, const RECT *rect, DWORD flags,
const struct wined3d_color *color, float depth, DWORD stencil)
HRESULT CDECL wined3d_device_context_clear_rendertarget_view(struct wined3d_device_context *context,
struct wined3d_rendertarget_view *view, const RECT *rect, unsigned int flags,
const struct wined3d_color *color, float depth, unsigned int stencil)
{
struct wined3d_resource *resource;
RECT r;
TRACE("device %p, view %p, rect %s, flags %#x, color %s, depth %.8e, stencil %u.\n",
device, view, wine_dbgstr_rect(rect), flags, debug_color(color), depth, stencil);
TRACE("context %p, view %p, rect %s, flags %#x, color %s, depth %.8e, stencil %u.\n",
context, view, wine_dbgstr_rect(rect), flags, debug_color(color), depth, stencil);
if (!flags)
return WINED3D_OK;
@ -5237,7 +5237,7 @@ HRESULT CDECL wined3d_device_clear_rendertarget_view(struct wined3d_device *devi
return hr;
}
wined3d_device_context_emit_clear_rendertarget_view(&device->cs->c, view, rect, flags, color, depth, stencil);
wined3d_device_context_emit_clear_rendertarget_view(context, view, rect, flags, color, depth, stencil);
return WINED3D_OK;
}

View file

@ -42,7 +42,6 @@
@ cdecl wined3d_device_apply_stateblock(ptr ptr)
@ cdecl wined3d_device_begin_scene(ptr)
@ cdecl wined3d_device_clear(ptr long ptr long ptr float long)
@ cdecl wined3d_device_clear_rendertarget_view(ptr ptr ptr long ptr float long)
@ cdecl wined3d_device_clear_unordered_access_view_uint(ptr ptr ptr)
@ cdecl wined3d_device_create(ptr ptr long ptr long long ptr long ptr ptr)
@ cdecl wined3d_device_decref(ptr)
@ -163,6 +162,7 @@
@ cdecl wined3d_device_validate_device(ptr ptr)
@ cdecl wined3d_device_context_blt(ptr ptr long ptr ptr long ptr long ptr long)
@ cdecl wined3d_device_context_clear_rendertarget_view(ptr ptr ptr long ptr float long)
@ cdecl wined3d_device_context_copy_resource(ptr ptr ptr)
@ cdecl wined3d_device_context_copy_sub_resource_region(ptr ptr long long long long ptr long ptr long)
@ cdecl wined3d_device_context_copy_uav_counter(ptr ptr long ptr)

View file

@ -2352,9 +2352,6 @@ void __cdecl wined3d_device_apply_stateblock(struct wined3d_device *device, stru
HRESULT __cdecl wined3d_device_begin_scene(struct wined3d_device *device);
HRESULT __cdecl wined3d_device_clear(struct wined3d_device *device, DWORD rect_count, const RECT *rects, DWORD flags,
const struct wined3d_color *color, float z, DWORD stencil);
HRESULT __cdecl wined3d_device_clear_rendertarget_view(struct wined3d_device *device,
struct wined3d_rendertarget_view *view, const RECT *rect, DWORD flags,
const struct wined3d_color *color, float depth, DWORD stencil);
void __cdecl wined3d_device_clear_unordered_access_view_uint(struct wined3d_device *device,
struct wined3d_unordered_access_view *view, const struct wined3d_uvec4 *clear_value);
HRESULT __cdecl wined3d_device_create(struct wined3d *wined3d, struct wined3d_adapter *adapter,
@ -2549,6 +2546,9 @@ HRESULT __cdecl wined3d_device_context_blt(struct wined3d_device_context *contex
struct wined3d_texture *dst_texture, unsigned int dst_sub_resource_idx, const RECT *dst_rect,
struct wined3d_texture *src_texture, unsigned int src_sub_resource_idx, const RECT *src_rect,
unsigned int flags, const struct wined3d_blt_fx *fx, enum wined3d_texture_filter_type filter);
HRESULT __cdecl wined3d_device_context_clear_rendertarget_view(struct wined3d_device_context *context,
struct wined3d_rendertarget_view *view, const RECT *rect, unsigned int flags,
const struct wined3d_color *color, float depth, unsigned int stencil);
void __cdecl wined3d_device_context_copy_resource(struct wined3d_device_context *context,
struct wined3d_resource *dst_resource, struct wined3d_resource *src_resource);
HRESULT __cdecl wined3d_device_context_copy_sub_resource_region(struct wined3d_device_context *context,