[PATCH 3/5] wined3d: Pass a wined3d_device_context to wined3d_device_get_rasterizer_state().

Zebediah Figura z.figura12 at gmail.com
Thu Apr 15 23:16:04 CDT 2021


Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
---
 dlls/d3d11/device.c       | 6 +++---
 dlls/wined3d/device.c     | 7 ++++---
 dlls/wined3d/wined3d.spec | 2 +-
 include/wine/wined3d.h    | 3 ++-
 4 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c
index d56be188cf6..29b5b11aebd 100644
--- a/dlls/d3d11/device.c
+++ b/dlls/d3d11/device.c
@@ -2211,14 +2211,14 @@ static void STDMETHODCALLTYPE d3d11_immediate_context_SOGetTargets(ID3D11DeviceC
 static void STDMETHODCALLTYPE d3d11_immediate_context_RSGetState(ID3D11DeviceContext1 *iface,
         ID3D11RasterizerState **rasterizer_state)
 {
-    struct d3d_device *device = device_from_immediate_ID3D11DeviceContext1(iface);
+    struct d3d11_immediate_context *context = impl_from_ID3D11DeviceContext1(iface);
     struct d3d_rasterizer_state *rasterizer_state_impl;
     struct wined3d_rasterizer_state *wined3d_state;
 
     TRACE("iface %p, rasterizer_state %p.\n", iface, rasterizer_state);
 
     wined3d_mutex_lock();
-    if ((wined3d_state = wined3d_device_get_rasterizer_state(device->wined3d_device)))
+    if ((wined3d_state = wined3d_device_context_get_rasterizer_state(context->wined3d_context)))
     {
         rasterizer_state_impl = wined3d_rasterizer_state_get_parent(wined3d_state);
         ID3D11RasterizerState_AddRef(*rasterizer_state = &rasterizer_state_impl->ID3D11RasterizerState_iface);
@@ -5501,7 +5501,7 @@ static void STDMETHODCALLTYPE d3d10_device_RSGetState(ID3D10Device1 *iface, ID3D
     TRACE("iface %p, rasterizer_state %p.\n", iface, rasterizer_state);
 
     wined3d_mutex_lock();
-    if ((wined3d_state = wined3d_device_get_rasterizer_state(device->wined3d_device)))
+    if ((wined3d_state = wined3d_device_context_get_rasterizer_state(device->immediate_context.wined3d_context)))
     {
         rasterizer_state_impl = wined3d_rasterizer_state_get_parent(wined3d_state);
         ID3D10RasterizerState_AddRef(*rasterizer_state = &rasterizer_state_impl->ID3D10RasterizerState_iface);
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index c370c5dff7c..452c3b35414 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -1642,11 +1642,12 @@ void CDECL wined3d_device_set_rasterizer_state(struct wined3d_device *device,
     wined3d_device_context_set_rasterizer_state(&device->cs->c, rasterizer_state);
 }
 
-struct wined3d_rasterizer_state * CDECL wined3d_device_get_rasterizer_state(struct wined3d_device *device)
+struct wined3d_rasterizer_state * CDECL wined3d_device_context_get_rasterizer_state(
+        struct wined3d_device_context *context)
 {
-    TRACE("device %p.\n", device);
+    TRACE("context %p.\n", context);
 
-    return device->cs->c.state->rasterizer_state;
+    return context->state->rasterizer_state;
 }
 
 void CDECL wined3d_device_set_render_state(struct wined3d_device *device,
diff --git a/dlls/wined3d/wined3d.spec b/dlls/wined3d/wined3d.spec
index e9650c10024..2af21d5a31c 100644
--- a/dlls/wined3d/wined3d.spec
+++ b/dlls/wined3d/wined3d.spec
@@ -84,7 +84,6 @@
 @ cdecl wined3d_device_get_ps_resource_view(ptr long)
 @ cdecl wined3d_device_get_ps_sampler(ptr long)
 @ cdecl wined3d_device_get_raster_status(ptr long ptr)
-@ cdecl wined3d_device_get_rasterizer_state(ptr)
 @ cdecl wined3d_device_get_render_state(ptr long)
 @ cdecl wined3d_device_get_rendertarget_view(ptr long)
 @ cdecl wined3d_device_get_scissor_rects(ptr ptr ptr)
@@ -171,6 +170,7 @@
 @ cdecl wined3d_device_context_get_blend_state(ptr ptr ptr)
 @ cdecl wined3d_device_context_get_constant_buffer(ptr long long)
 @ cdecl wined3d_device_context_get_depth_stencil_state(ptr ptr)
+@ cdecl wined3d_device_context_get_rasterizer_state(ptr)
 @ cdecl wined3d_device_context_get_shader(ptr long)
 @ cdecl wined3d_device_context_issue_query(ptr ptr long)
 @ cdecl wined3d_device_context_map(ptr ptr long ptr ptr long)
diff --git a/include/wine/wined3d.h b/include/wine/wined3d.h
index 165e69b89f3..5687b7e17df 100644
--- a/include/wine/wined3d.h
+++ b/include/wine/wined3d.h
@@ -2419,7 +2419,6 @@ struct wined3d_shader_resource_view * __cdecl wined3d_device_get_ps_resource_vie
 struct wined3d_sampler * __cdecl wined3d_device_get_ps_sampler(const struct wined3d_device *device, UINT idx);
 HRESULT __cdecl wined3d_device_get_raster_status(const struct wined3d_device *device,
         UINT swapchain_idx, struct wined3d_raster_status *raster_status);
-struct wined3d_rasterizer_state * __cdecl wined3d_device_get_rasterizer_state(struct wined3d_device *device);
 DWORD __cdecl wined3d_device_get_render_state(const struct wined3d_device *device, enum wined3d_render_state state);
 struct wined3d_rendertarget_view * __cdecl wined3d_device_get_rendertarget_view(const struct wined3d_device *device,
         unsigned int view_idx);
@@ -2569,6 +2568,8 @@ struct wined3d_buffer * __cdecl wined3d_device_context_get_constant_buffer(const
         enum wined3d_shader_type shader_type, unsigned int idx);
 struct wined3d_depth_stencil_state * __cdecl wined3d_device_context_get_depth_stencil_state(
         const struct wined3d_device_context *context, unsigned int *stencil_ref);
+struct wined3d_rasterizer_state * __cdecl wined3d_device_context_get_rasterizer_state(
+        struct wined3d_device_context *context);
 struct wined3d_shader * __cdecl wined3d_device_context_get_shader(const struct wined3d_device_context *context,
         enum wined3d_shader_type type);
 void __cdecl wined3d_device_context_issue_query(struct wined3d_device_context *context,
-- 
2.30.2




More information about the wine-devel mailing list