The actual effect of this is to change the algorithm for line multisampling.
Signed-off-by: Zebediah Figura z.figura12@gmail.com --- dlls/d3d11/device.c | 17 +++-------------- dlls/d3d11/state.c | 7 +++++++ 2 files changed, 10 insertions(+), 14 deletions(-)
diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c index ee6ecd2c29c..a2c6c7a75ae 100644 --- a/dlls/d3d11/device.c +++ b/dlls/d3d11/device.c @@ -1142,25 +1142,14 @@ static void STDMETHODCALLTYPE d3d11_immediate_context_RSSetState(ID3D11DeviceCon ID3D11RasterizerState *rasterizer_state) { struct d3d11_immediate_context *context = impl_from_ID3D11DeviceContext1(iface); - struct d3d_device *device = device_from_immediate_ID3D11DeviceContext1(iface); struct d3d_rasterizer_state *rasterizer_state_impl; - const D3D11_RASTERIZER_DESC *desc;
TRACE("iface %p, rasterizer_state %p.\n", iface, rasterizer_state);
wined3d_mutex_lock(); - if (!(rasterizer_state_impl = unsafe_impl_from_ID3D11RasterizerState(rasterizer_state))) - { - wined3d_device_context_set_rasterizer_state(context->wined3d_context, NULL); - wined3d_device_set_render_state(device->wined3d_device, WINED3D_RS_MULTISAMPLEANTIALIAS, FALSE); - wined3d_mutex_unlock(); - return; - } - - wined3d_device_context_set_rasterizer_state(context->wined3d_context, rasterizer_state_impl->wined3d_state); - - desc = &rasterizer_state_impl->desc; - wined3d_device_set_render_state(device->wined3d_device, WINED3D_RS_MULTISAMPLEANTIALIAS, desc->MultisampleEnable); + rasterizer_state_impl = unsafe_impl_from_ID3D11RasterizerState(rasterizer_state); + wined3d_device_context_set_rasterizer_state(context->wined3d_context, + rasterizer_state_impl ? rasterizer_state_impl->wined3d_state : NULL); wined3d_mutex_unlock(); }
diff --git a/dlls/d3d11/state.c b/dlls/d3d11/state.c index 6b287176536..d31ea16bbe8 100644 --- a/dlls/d3d11/state.c +++ b/dlls/d3d11/state.c @@ -1152,6 +1152,13 @@ static HRESULT d3d_rasterizer_state_init(struct d3d_rasterizer_state *state, str wined3d_desc.scissor = desc->ScissorEnable; wined3d_desc.line_antialias = desc->AntialiasedLineEnable;
+ if (desc->MultisampleEnable) + { + static unsigned int once; + if (!once++) + FIXME("Ignoring MultisampleEnable %#x.\n", desc->MultisampleEnable); + } + /* We cannot fail after creating a wined3d_rasterizer_state object. It * would lead to double free. */ if (FAILED(hr = wined3d_rasterizer_state_create(device->wined3d_device, &wined3d_desc,
Signed-off-by: Zebediah Figura z.figura12@gmail.com --- dlls/wined3d/device.c | 4 +--- dlls/wined3d/wined3d.spec | 1 - include/wine/wined3d.h | 2 -- 3 files changed, 1 insertion(+), 6 deletions(-)
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c index 813ee773478..fdde0a88cab 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c @@ -1650,11 +1650,9 @@ struct wined3d_rasterizer_state * CDECL wined3d_device_context_get_rasterizer_st return context->state->rasterizer_state; }
-void CDECL wined3d_device_set_render_state(struct wined3d_device *device, +static void wined3d_device_set_render_state(struct wined3d_device *device, enum wined3d_render_state state, DWORD value) { - TRACE("device %p, state %s (%#x), value %#x.\n", device, debug_d3drenderstate(state), state, value); - if (state > WINEHIGHEST_RENDER_STATE) { WARN("Unhandled render state %#x.\n", state); diff --git a/dlls/wined3d/wined3d.spec b/dlls/wined3d/wined3d.spec index 1ea837cc59a..2879e1653d3 100644 --- a/dlls/wined3d/wined3d.spec +++ b/dlls/wined3d/wined3d.spec @@ -126,7 +126,6 @@ @ cdecl wined3d_device_set_ps_resource_view(ptr long ptr) @ cdecl wined3d_device_set_ps_sampler(ptr long ptr) @ cdecl wined3d_device_set_rasterizer_state(ptr ptr) -@ cdecl wined3d_device_set_render_state(ptr long long) @ cdecl wined3d_device_set_rendertarget_view(ptr long ptr long) @ cdecl wined3d_device_set_scissor_rects(ptr long ptr) @ cdecl wined3d_device_set_software_vertex_processing(ptr long) diff --git a/include/wine/wined3d.h b/include/wine/wined3d.h index 89c0d75c1eb..dd1c15f14ed 100644 --- a/include/wine/wined3d.h +++ b/include/wine/wined3d.h @@ -2484,8 +2484,6 @@ void __cdecl wined3d_device_set_ps_resource_view(struct wined3d_device *device, void __cdecl wined3d_device_set_ps_sampler(struct wined3d_device *device, UINT idx, struct wined3d_sampler *sampler); void __cdecl wined3d_device_set_rasterizer_state(struct wined3d_device *device, struct wined3d_rasterizer_state *rasterizer_state); -void __cdecl wined3d_device_set_render_state(struct wined3d_device *device, - enum wined3d_render_state state, DWORD value); HRESULT __cdecl wined3d_device_set_rendertarget_view(struct wined3d_device *device, unsigned int view_idx, struct wined3d_rendertarget_view *view, BOOL set_viewport); void __cdecl wined3d_device_set_scissor_rects(struct wined3d_device *device,
Signed-off-by: Henri Verbeet hverbeet@codeweavers.com