Signed-off-by: Zebediah Figura z.figura12@gmail.com --- dlls/wined3d/device.c | 46 +++++++++++++++++++++++---------------- dlls/wined3d/wined3d.spec | 1 + include/wine/wined3d.h | 2 ++ 3 files changed, 30 insertions(+), 19 deletions(-)
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c index 1edbd23e7e4..338b489c9b9 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c @@ -2107,27 +2107,13 @@ void CDECL wined3d_device_context_set_shader(struct wined3d_device_context *cont wined3d_shader_decref(prev); }
-void CDECL wined3d_device_set_vertex_shader(struct wined3d_device *device, struct wined3d_shader *shader) -{ - TRACE("device %p, shader %p.\n", device, shader); - - return wined3d_device_context_set_shader(&device->cs->c, WINED3D_SHADER_TYPE_VERTEX, shader); -} - -struct wined3d_shader * CDECL wined3d_device_get_vertex_shader(const struct wined3d_device *device) -{ - TRACE("device %p.\n", device); - - return device->cs->c.state->shader[WINED3D_SHADER_TYPE_VERTEX]; -} - -void CDECL wined3d_device_set_constant_buffer(struct wined3d_device *device, - enum wined3d_shader_type type, UINT idx, struct wined3d_buffer *buffer) +void CDECL wined3d_device_context_set_constant_buffer(struct wined3d_device_context *context, + enum wined3d_shader_type type, unsigned int idx, struct wined3d_buffer *buffer) { - struct wined3d_state *state = device->cs->c.state; + struct wined3d_state *state = context->state; struct wined3d_buffer *prev;
- TRACE("device %p, type %#x, idx %u, buffer %p.\n", device, type, idx, buffer); + TRACE("context %p, type %#x, idx %u, buffer %p.\n", context, type, idx, buffer);
if (idx >= MAX_CONSTANT_BUFFERS) { @@ -2142,11 +2128,33 @@ void CDECL wined3d_device_set_constant_buffer(struct wined3d_device *device, if (buffer) wined3d_buffer_incref(buffer); state->cb[type][idx] = buffer; - wined3d_device_context_emit_set_constant_buffer(&device->cs->c, type, idx, buffer); + wined3d_device_context_emit_set_constant_buffer(context, type, idx, buffer); if (prev) wined3d_buffer_decref(prev); }
+void CDECL wined3d_device_set_vertex_shader(struct wined3d_device *device, struct wined3d_shader *shader) +{ + TRACE("device %p, shader %p.\n", device, shader); + + return wined3d_device_context_set_shader(&device->cs->c, WINED3D_SHADER_TYPE_VERTEX, shader); +} + +struct wined3d_shader * CDECL wined3d_device_get_vertex_shader(const struct wined3d_device *device) +{ + TRACE("device %p.\n", device); + + return device->cs->c.state->shader[WINED3D_SHADER_TYPE_VERTEX]; +} + +void CDECL wined3d_device_set_constant_buffer(struct wined3d_device *device, + enum wined3d_shader_type type, UINT idx, struct wined3d_buffer *buffer) +{ + TRACE("device %p, type %#x, idx %u, buffer %p.\n", device, type, idx, buffer); + + return wined3d_device_context_set_constant_buffer(&device->cs->c, type, idx, buffer); +} + struct wined3d_buffer * CDECL wined3d_device_get_constant_buffer(const struct wined3d_device *device, enum wined3d_shader_type shader_type, unsigned int idx) { diff --git a/dlls/wined3d/wined3d.spec b/dlls/wined3d/wined3d.spec index f5fa1d3d7e5..d88817d6551 100644 --- a/dlls/wined3d/wined3d.spec +++ b/dlls/wined3d/wined3d.spec @@ -167,6 +167,7 @@ @ cdecl wined3d_device_update_texture(ptr ptr ptr) @ cdecl wined3d_device_validate_device(ptr ptr)
+@ cdecl wined3d_device_context_set_constant_buffer(ptr long long ptr) @ cdecl wined3d_device_context_set_shader(ptr long ptr)
@ cdecl wined3d_output_find_closest_matching_mode(ptr ptr) diff --git a/include/wine/wined3d.h b/include/wine/wined3d.h index ba9e8642ea2..0bdf53c651e 100644 --- a/include/wine/wined3d.h +++ b/include/wine/wined3d.h @@ -2549,6 +2549,8 @@ HRESULT __cdecl wined3d_device_update_texture(struct wined3d_device *device, struct wined3d_texture *src_texture, struct wined3d_texture *dst_texture); HRESULT __cdecl wined3d_device_validate_device(const struct wined3d_device *device, DWORD *num_passes);
+void __cdecl wined3d_device_context_set_constant_buffer(struct wined3d_device_context *context, + enum wined3d_shader_type type, unsigned int idx, struct wined3d_buffer *buffer); void __cdecl wined3d_device_context_set_shader(struct wined3d_device_context *context, enum wined3d_shader_type type, struct wined3d_shader *shader);