[PATCH 4/6] wined3d: Pass a wined3d_device_context to wined3d_cs_emit_set_constant_buffer().

Zebediah Figura z.figura12 at gmail.com
Sun Mar 7 16:19:22 CST 2021


Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
---
 dlls/wined3d/cs.c              | 8 ++++----
 dlls/wined3d/device.c          | 9 ++++-----
 dlls/wined3d/wined3d_private.h | 4 ++--
 3 files changed, 10 insertions(+), 11 deletions(-)

diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c
index 13a034660d3..367d0aeadbb 100644
--- a/dlls/wined3d/cs.c
+++ b/dlls/wined3d/cs.c
@@ -1414,18 +1414,18 @@ static void wined3d_cs_exec_set_constant_buffer(struct wined3d_cs *cs, const voi
     device_invalidate_state(cs->c.device, STATE_CONSTANT_BUFFER(op->type));
 }
 
-void wined3d_cs_emit_set_constant_buffer(struct wined3d_cs *cs, enum wined3d_shader_type type,
-        UINT cb_idx, struct wined3d_buffer *buffer)
+void wined3d_device_context_emit_set_constant_buffer(struct wined3d_device_context *context,
+        enum wined3d_shader_type type, UINT cb_idx, struct wined3d_buffer *buffer)
 {
     struct wined3d_cs_set_constant_buffer *op;
 
-    op = wined3d_device_context_require_space(&cs->c, sizeof(*op), WINED3D_CS_QUEUE_DEFAULT);
+    op = wined3d_device_context_require_space(context, sizeof(*op), WINED3D_CS_QUEUE_DEFAULT);
     op->opcode = WINED3D_CS_OP_SET_CONSTANT_BUFFER;
     op->type = type;
     op->cb_idx = cb_idx;
     op->buffer = buffer;
 
-    wined3d_device_context_submit(&cs->c, WINED3D_CS_QUEUE_DEFAULT);
+    wined3d_device_context_submit(context, WINED3D_CS_QUEUE_DEFAULT);
 }
 
 static void wined3d_cs_exec_set_texture(struct wined3d_cs *cs, const void *data)
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index 629f8c2c740..ea18dd703a2 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -1950,6 +1950,7 @@ void CDECL wined3d_device_get_scissor_rects(const struct wined3d_device *device,
 
 void CDECL wined3d_device_set_state(struct wined3d_device *device, struct wined3d_state *state)
 {
+    struct wined3d_device_context *context = &device->cs->c;
     const struct wined3d_light_info *light;
     unsigned int i, j;
 
@@ -1983,11 +1984,9 @@ void CDECL wined3d_device_set_state(struct wined3d_device *device, struct wined3
 
     for (i = 0; i < WINED3D_SHADER_TYPE_COUNT; ++i)
     {
-        wined3d_device_context_emit_set_shader(&device->cs->c, i, state->shader[i]);
+        wined3d_device_context_emit_set_shader(context, i, state->shader[i]);
         for (j = 0; j < MAX_CONSTANT_BUFFERS; ++j)
-        {
-            wined3d_cs_emit_set_constant_buffer(device->cs, i, j, state->cb[i][j]);
-        }
+            wined3d_device_context_emit_set_constant_buffer(context, i, j, state->cb[i][j]);
         for (j = 0; j < MAX_SAMPLER_OBJECTS; ++j)
         {
             wined3d_cs_emit_set_sampler(device->cs, i, j, state->sampler[i][j]);
@@ -2168,7 +2167,7 @@ void CDECL wined3d_device_set_constant_buffer(struct wined3d_device *device,
     if (buffer)
         wined3d_buffer_incref(buffer);
     state->cb[type][idx] = buffer;
-    wined3d_cs_emit_set_constant_buffer(device->cs, type, idx, buffer);
+    wined3d_device_context_emit_set_constant_buffer(&device->cs->c, type, idx, buffer);
     if (prev)
         wined3d_buffer_decref(prev);
 }
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index 2c39898d03c..a430d4df25b 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -4749,8 +4749,6 @@ void wined3d_cs_emit_set_clip_plane(struct wined3d_cs *cs, UINT plane_idx,
         const struct wined3d_vec4 *plane) DECLSPEC_HIDDEN;
 void wined3d_cs_emit_set_color_key(struct wined3d_cs *cs, struct wined3d_texture *texture,
         WORD flags, const struct wined3d_color_key *color_key) DECLSPEC_HIDDEN;
-void wined3d_cs_emit_set_constant_buffer(struct wined3d_cs *cs, enum wined3d_shader_type type,
-        UINT cb_idx, struct wined3d_buffer *buffer) DECLSPEC_HIDDEN;
 void wined3d_cs_emit_set_depth_stencil_state(struct wined3d_cs *cs,
         struct wined3d_depth_stencil_state *state, unsigned int stencil_ref) DECLSPEC_HIDDEN;
 void wined3d_cs_emit_set_depth_stencil_view(struct wined3d_cs *cs,
@@ -4814,6 +4812,8 @@ static inline void wined3d_cs_push_constants(struct wined3d_cs *cs, enum wined3d
     cs->c.ops->push_constants(&cs->c, p, start_idx, count, constants);
 }
 
+void wined3d_device_context_emit_set_constant_buffer(struct wined3d_device_context *context,
+        enum wined3d_shader_type type, UINT cb_idx, struct wined3d_buffer *buffer) DECLSPEC_HIDDEN;
 void wined3d_device_context_emit_set_shader(struct wined3d_device_context *context, enum wined3d_shader_type type,
         struct wined3d_shader *shader) DECLSPEC_HIDDEN;
 
-- 
2.20.1




More information about the wine-devel mailing list