wined3d: Pass a wined3d_device_context to wined3d_device_set_primitive_type().
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:
parent
bba5923bbe
commit
ea5041c68a
|
@ -766,7 +766,7 @@ static void STDMETHODCALLTYPE d3d11_immediate_context_GSSetShader(ID3D11DeviceCo
|
|||
static void STDMETHODCALLTYPE d3d11_immediate_context_IASetPrimitiveTopology(ID3D11DeviceContext1 *iface,
|
||||
D3D11_PRIMITIVE_TOPOLOGY topology)
|
||||
{
|
||||
struct d3d_device *device = device_from_immediate_ID3D11DeviceContext1(iface);
|
||||
struct d3d11_immediate_context *context = impl_from_ID3D11DeviceContext1(iface);
|
||||
enum wined3d_primitive_type primitive_type;
|
||||
unsigned int patch_vertex_count;
|
||||
|
||||
|
@ -775,7 +775,7 @@ static void STDMETHODCALLTYPE d3d11_immediate_context_IASetPrimitiveTopology(ID3
|
|||
wined3d_primitive_type_from_d3d11_primitive_topology(topology, &primitive_type, &patch_vertex_count);
|
||||
|
||||
wined3d_mutex_lock();
|
||||
wined3d_device_set_primitive_type(device->wined3d_device, primitive_type, patch_vertex_count);
|
||||
wined3d_device_context_set_primitive_type(context->wined3d_context, primitive_type, patch_vertex_count);
|
||||
wined3d_mutex_unlock();
|
||||
}
|
||||
|
||||
|
@ -2605,7 +2605,6 @@ static void STDMETHODCALLTYPE d3d11_immediate_context_CSGetConstantBuffers(ID3D1
|
|||
static void STDMETHODCALLTYPE d3d11_immediate_context_ClearState(ID3D11DeviceContext1 *iface)
|
||||
{
|
||||
struct d3d11_immediate_context *context = impl_from_ID3D11DeviceContext1(iface);
|
||||
struct d3d_device *device = device_from_immediate_ID3D11DeviceContext1(iface);
|
||||
static const float blend_factor[] = {1.0f, 1.0f, 1.0f, 1.0f};
|
||||
unsigned int i, j;
|
||||
|
||||
|
@ -2628,7 +2627,7 @@ static void STDMETHODCALLTYPE d3d11_immediate_context_ClearState(ID3D11DeviceCon
|
|||
}
|
||||
wined3d_device_context_set_index_buffer(context->wined3d_context, NULL, WINED3DFMT_UNKNOWN, 0);
|
||||
wined3d_device_context_set_vertex_declaration(context->wined3d_context, NULL);
|
||||
wined3d_device_set_primitive_type(device->wined3d_device, WINED3D_PT_UNDEFINED, 0);
|
||||
wined3d_device_context_set_primitive_type(context->wined3d_context, WINED3D_PT_UNDEFINED, 0);
|
||||
for (i = 0; i < D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT; ++i)
|
||||
{
|
||||
wined3d_device_context_set_rendertarget_view(context->wined3d_context, i, NULL, FALSE);
|
||||
|
@ -4631,7 +4630,8 @@ static void STDMETHODCALLTYPE d3d10_device_IASetPrimitiveTopology(ID3D10Device1
|
|||
TRACE("iface %p, topology %s.\n", iface, debug_d3d10_primitive_topology(topology));
|
||||
|
||||
wined3d_mutex_lock();
|
||||
wined3d_device_set_primitive_type(device->wined3d_device, (enum wined3d_primitive_type)topology, 0);
|
||||
wined3d_device_context_set_primitive_type(device->immediate_context.wined3d_context,
|
||||
(enum wined3d_primitive_type)topology, 0);
|
||||
wined3d_mutex_unlock();
|
||||
}
|
||||
|
||||
|
|
|
@ -2505,7 +2505,8 @@ static HRESULT WINAPI d3d8_device_DrawPrimitive(IDirect3DDevice8 *iface,
|
|||
vertex_count = vertex_count_from_primitive_count(primitive_type, primitive_count);
|
||||
wined3d_mutex_lock();
|
||||
d3d8_device_upload_sysmem_vertex_buffers(device, start_vertex, vertex_count);
|
||||
wined3d_device_set_primitive_type(device->wined3d_device, wined3d_primitive_type_from_d3d(primitive_type), 0);
|
||||
wined3d_device_context_set_primitive_type(device->immediate_context,
|
||||
wined3d_primitive_type_from_d3d(primitive_type), 0);
|
||||
wined3d_device_apply_stateblock(device->wined3d_device, device->state);
|
||||
wined3d_device_context_draw(device->immediate_context, start_vertex, vertex_count, 0, 0);
|
||||
wined3d_mutex_unlock();
|
||||
|
@ -2535,7 +2536,8 @@ static HRESULT WINAPI d3d8_device_DrawIndexedPrimitive(IDirect3DDevice8 *iface,
|
|||
base_vertex_index = device->stateblock_state->base_vertex_index;
|
||||
d3d8_device_upload_sysmem_vertex_buffers(device, base_vertex_index + min_vertex_idx, vertex_count);
|
||||
d3d8_device_upload_sysmem_index_buffer(device, start_idx, index_count);
|
||||
wined3d_device_set_primitive_type(device->wined3d_device, wined3d_primitive_type_from_d3d(primitive_type), 0);
|
||||
wined3d_device_context_set_primitive_type(device->immediate_context,
|
||||
wined3d_primitive_type_from_d3d(primitive_type), 0);
|
||||
wined3d_device_apply_stateblock(device->wined3d_device, device->state);
|
||||
wined3d_device_context_draw_indexed(device->immediate_context, base_vertex_index, start_idx, index_count, 0, 0);
|
||||
wined3d_mutex_unlock();
|
||||
|
@ -2629,7 +2631,8 @@ static HRESULT WINAPI d3d8_device_DrawPrimitiveUP(IDirect3DDevice8 *iface,
|
|||
if (FAILED(hr))
|
||||
goto done;
|
||||
|
||||
wined3d_device_set_primitive_type(device->wined3d_device, wined3d_primitive_type_from_d3d(primitive_type), 0);
|
||||
wined3d_device_context_set_primitive_type(device->immediate_context,
|
||||
wined3d_primitive_type_from_d3d(primitive_type), 0);
|
||||
wined3d_device_apply_stateblock(device->wined3d_device, device->state);
|
||||
wined3d_device_context_draw(device->immediate_context, vb_pos / stride, vtx_count, 0, 0);
|
||||
wined3d_stateblock_set_stream_source(device->state, 0, NULL, 0, 0);
|
||||
|
@ -2759,7 +2762,8 @@ static HRESULT WINAPI d3d8_device_DrawIndexedPrimitiveUP(IDirect3DDevice8 *iface
|
|||
base_vertex_idx = vb_pos / vertex_stride - min_vertex_idx;
|
||||
wined3d_stateblock_set_base_vertex_index(device->state, base_vertex_idx);
|
||||
|
||||
wined3d_device_set_primitive_type(device->wined3d_device, wined3d_primitive_type_from_d3d(primitive_type), 0);
|
||||
wined3d_device_context_set_primitive_type(device->immediate_context,
|
||||
wined3d_primitive_type_from_d3d(primitive_type), 0);
|
||||
wined3d_device_apply_stateblock(device->wined3d_device, device->state);
|
||||
wined3d_device_context_draw_indexed(device->immediate_context,
|
||||
base_vertex_idx, ib_pos / idx_fmt_size, idx_count, 0, 0);
|
||||
|
|
|
@ -3036,7 +3036,8 @@ static HRESULT WINAPI d3d9_device_DrawPrimitive(IDirect3DDevice9Ex *iface,
|
|||
vertex_count = vertex_count_from_primitive_count(primitive_type, primitive_count);
|
||||
d3d9_device_upload_sysmem_vertex_buffers(device, 0, start_vertex, vertex_count);
|
||||
d3d9_generate_auto_mipmaps(device);
|
||||
wined3d_device_set_primitive_type(device->wined3d_device, wined3d_primitive_type_from_d3d(primitive_type), 0);
|
||||
wined3d_device_context_set_primitive_type(device->immediate_context,
|
||||
wined3d_primitive_type_from_d3d(primitive_type), 0);
|
||||
wined3d_device_context_draw(device->immediate_context, start_vertex, vertex_count, 0, 0);
|
||||
d3d9_rts_flag_auto_gen_mipmap(device);
|
||||
wined3d_mutex_unlock();
|
||||
|
@ -3073,7 +3074,8 @@ static HRESULT WINAPI d3d9_device_DrawIndexedPrimitive(IDirect3DDevice9Ex *iface
|
|||
d3d9_device_upload_sysmem_vertex_buffers(device, base_vertex_idx, min_vertex_idx, vertex_count);
|
||||
d3d9_device_upload_sysmem_index_buffer(device, start_idx, index_count);
|
||||
d3d9_generate_auto_mipmaps(device);
|
||||
wined3d_device_set_primitive_type(device->wined3d_device, wined3d_primitive_type_from_d3d(primitive_type), 0);
|
||||
wined3d_device_context_set_primitive_type(device->immediate_context,
|
||||
wined3d_primitive_type_from_d3d(primitive_type), 0);
|
||||
wined3d_device_apply_stateblock(device->wined3d_device, device->state);
|
||||
wined3d_device_context_draw_indexed(device->immediate_context, base_vertex_idx, start_idx, index_count, 0, 0);
|
||||
d3d9_rts_flag_auto_gen_mipmap(device);
|
||||
|
@ -3181,7 +3183,8 @@ static HRESULT WINAPI d3d9_device_DrawPrimitiveUP(IDirect3DDevice9Ex *iface,
|
|||
goto done;
|
||||
|
||||
d3d9_generate_auto_mipmaps(device);
|
||||
wined3d_device_set_primitive_type(device->wined3d_device, wined3d_primitive_type_from_d3d(primitive_type), 0);
|
||||
wined3d_device_context_set_primitive_type(device->immediate_context,
|
||||
wined3d_primitive_type_from_d3d(primitive_type), 0);
|
||||
wined3d_device_apply_stateblock(device->wined3d_device, device->state);
|
||||
wined3d_device_context_draw(device->immediate_context, vb_pos / stride, vtx_count, 0, 0);
|
||||
wined3d_stateblock_set_stream_source(device->state, 0, NULL, 0, 0);
|
||||
|
@ -3323,7 +3326,8 @@ static HRESULT WINAPI d3d9_device_DrawIndexedPrimitiveUP(IDirect3DDevice9Ex *ifa
|
|||
wined3dformat_from_d3dformat(index_format));
|
||||
|
||||
wined3d_device_apply_stateblock(device->wined3d_device, device->state);
|
||||
wined3d_device_set_primitive_type(device->wined3d_device, wined3d_primitive_type_from_d3d(primitive_type), 0);
|
||||
wined3d_device_context_set_primitive_type(device->immediate_context,
|
||||
wined3d_primitive_type_from_d3d(primitive_type), 0);
|
||||
wined3d_device_context_draw_indexed(device->immediate_context,
|
||||
vb_pos / vertex_stride - min_vertex_idx, ib_pos / idx_fmt_size, idx_count, 0, 0);
|
||||
|
||||
|
|
|
@ -3520,7 +3520,8 @@ static HRESULT d3d_device7_DrawPrimitive(IDirect3DDevice7 *iface,
|
|||
goto done;
|
||||
|
||||
wined3d_stateblock_set_vertex_declaration(device->state, ddraw_find_decl(device->ddraw, fvf));
|
||||
wined3d_device_set_primitive_type(device->wined3d_device, wined3d_primitive_type_from_ddraw(primitive_type), 0);
|
||||
wined3d_device_context_set_primitive_type(device->immediate_context,
|
||||
wined3d_primitive_type_from_ddraw(primitive_type), 0);
|
||||
wined3d_device_apply_stateblock(device->wined3d_device, device->state);
|
||||
d3d_device_sync_surfaces(device);
|
||||
wined3d_device_context_draw(device->immediate_context, vb_pos / stride, vertex_count, 0, 0);
|
||||
|
@ -3732,7 +3733,8 @@ static HRESULT d3d_device7_DrawIndexedPrimitive(IDirect3DDevice7 *iface,
|
|||
wined3d_stateblock_set_index_buffer(device->state, device->index_buffer, WINED3DFMT_R16_UINT);
|
||||
|
||||
wined3d_stateblock_set_vertex_declaration(device->state, ddraw_find_decl(device->ddraw, fvf));
|
||||
wined3d_device_set_primitive_type(device->wined3d_device, wined3d_primitive_type_from_ddraw(primitive_type), 0);
|
||||
wined3d_device_context_set_primitive_type(device->immediate_context,
|
||||
wined3d_primitive_type_from_ddraw(primitive_type), 0);
|
||||
wined3d_device_apply_stateblock(device->wined3d_device, device->state);
|
||||
d3d_device_sync_surfaces(device);
|
||||
wined3d_device_context_draw_indexed(device->immediate_context, vb_pos / stride,
|
||||
|
@ -4060,7 +4062,8 @@ static HRESULT d3d_device7_DrawPrimitiveStrided(IDirect3DDevice7 *iface, D3DPRIM
|
|||
goto done;
|
||||
wined3d_stateblock_set_vertex_declaration(device->state, ddraw_find_decl(device->ddraw, fvf));
|
||||
|
||||
wined3d_device_set_primitive_type(device->wined3d_device, wined3d_primitive_type_from_ddraw(primitive_type), 0);
|
||||
wined3d_device_context_set_primitive_type(device->immediate_context,
|
||||
wined3d_primitive_type_from_ddraw(primitive_type), 0);
|
||||
wined3d_device_apply_stateblock(device->wined3d_device, device->state);
|
||||
d3d_device_sync_surfaces(device);
|
||||
wined3d_device_context_draw(device->immediate_context, vb_pos / dst_stride, vertex_count, 0, 0);
|
||||
|
@ -4196,7 +4199,8 @@ static HRESULT d3d_device7_DrawIndexedPrimitiveStrided(IDirect3DDevice7 *iface,
|
|||
wined3d_stateblock_set_index_buffer(device->state, device->index_buffer, WINED3DFMT_R16_UINT);
|
||||
|
||||
wined3d_stateblock_set_vertex_declaration(device->state, ddraw_find_decl(device->ddraw, fvf));
|
||||
wined3d_device_set_primitive_type(device->wined3d_device, wined3d_primitive_type_from_ddraw(primitive_type), 0);
|
||||
wined3d_device_context_set_primitive_type(device->immediate_context,
|
||||
wined3d_primitive_type_from_ddraw(primitive_type), 0);
|
||||
wined3d_device_apply_stateblock(device->wined3d_device, device->state);
|
||||
d3d_device_sync_surfaces(device);
|
||||
wined3d_device_context_draw_indexed(device->immediate_context,
|
||||
|
@ -4320,7 +4324,8 @@ static HRESULT d3d_device7_DrawPrimitiveVB(IDirect3DDevice7 *iface, D3DPRIMITIVE
|
|||
}
|
||||
|
||||
/* Now draw the primitives */
|
||||
wined3d_device_set_primitive_type(device->wined3d_device, wined3d_primitive_type_from_ddraw(primitive_type), 0);
|
||||
wined3d_device_context_set_primitive_type(device->immediate_context,
|
||||
wined3d_primitive_type_from_ddraw(primitive_type), 0);
|
||||
wined3d_device_apply_stateblock(device->wined3d_device, device->state);
|
||||
d3d_device_sync_surfaces(device);
|
||||
wined3d_device_context_draw(device->immediate_context, start_vertex, vertex_count, 0, 0);
|
||||
|
@ -4474,7 +4479,8 @@ static HRESULT d3d_device7_DrawIndexedPrimitiveVB(IDirect3DDevice7 *iface,
|
|||
return hr;
|
||||
}
|
||||
|
||||
wined3d_device_set_primitive_type(device->wined3d_device, wined3d_primitive_type_from_ddraw(primitive_type), 0);
|
||||
wined3d_device_context_set_primitive_type(device->immediate_context,
|
||||
wined3d_primitive_type_from_ddraw(primitive_type), 0);
|
||||
wined3d_device_apply_stateblock(device->wined3d_device, device->state);
|
||||
d3d_device_sync_surfaces(device);
|
||||
wined3d_device_context_draw_indexed(device->immediate_context, start_vertex,
|
||||
|
|
|
@ -74,7 +74,7 @@ HRESULT d3d_execute_buffer_execute(struct d3d_execute_buffer *buffer, struct d3d
|
|||
case D3DOP_POINT:
|
||||
{
|
||||
const D3DPOINT *p = (D3DPOINT *)instr;
|
||||
wined3d_device_set_primitive_type(device->wined3d_device, WINED3D_PT_POINTLIST, 0);
|
||||
wined3d_device_context_set_primitive_type(device->immediate_context, WINED3D_PT_POINTLIST, 0);
|
||||
wined3d_stateblock_set_stream_source(device->state, 0,
|
||||
buffer->dst_vertex_buffer, 0, sizeof(D3DTLVERTEX));
|
||||
wined3d_stateblock_set_vertex_declaration(device->state,
|
||||
|
@ -91,7 +91,7 @@ HRESULT d3d_execute_buffer_execute(struct d3d_execute_buffer *buffer, struct d3d
|
|||
|
||||
case D3DOP_LINE:
|
||||
primitive_size = 2;
|
||||
wined3d_device_set_primitive_type(device->wined3d_device, WINED3D_PT_LINELIST, 0);
|
||||
wined3d_device_context_set_primitive_type(device->immediate_context, WINED3D_PT_LINELIST, 0);
|
||||
/* Drop through. */
|
||||
case D3DOP_TRIANGLE:
|
||||
{
|
||||
|
@ -104,7 +104,7 @@ HRESULT d3d_execute_buffer_execute(struct d3d_execute_buffer *buffer, struct d3d
|
|||
|
||||
if (!primitive_size)
|
||||
{
|
||||
wined3d_device_set_primitive_type(device->wined3d_device, WINED3D_PT_TRIANGLELIST, 0);
|
||||
wined3d_device_context_set_primitive_type(device->immediate_context, WINED3D_PT_TRIANGLELIST, 0);
|
||||
primitive_size = 3;
|
||||
}
|
||||
|
||||
|
|
|
@ -4488,13 +4488,13 @@ void CDECL wined3d_device_dispatch_compute_indirect(struct wined3d_device *devic
|
|||
wined3d_device_context_dispatch_indirect(&device->cs->c, buffer, offset);
|
||||
}
|
||||
|
||||
void CDECL wined3d_device_set_primitive_type(struct wined3d_device *device,
|
||||
void CDECL wined3d_device_context_set_primitive_type(struct wined3d_device_context *context,
|
||||
enum wined3d_primitive_type primitive_type, unsigned int patch_vertex_count)
|
||||
{
|
||||
struct wined3d_state *state = device->cs->c.state;
|
||||
struct wined3d_state *state = context->state;
|
||||
|
||||
TRACE("device %p, primitive_type %s, patch_vertex_count %u.\n",
|
||||
device, debug_d3dprimitivetype(primitive_type), patch_vertex_count);
|
||||
TRACE("context %p, primitive_type %s, patch_vertex_count %u.\n",
|
||||
context, debug_d3dprimitivetype(primitive_type), patch_vertex_count);
|
||||
|
||||
state->primitive_type = primitive_type;
|
||||
state->patch_vertex_count = patch_vertex_count;
|
||||
|
|
|
@ -124,7 +124,6 @@
|
|||
@ cdecl wined3d_device_set_npatch_mode(ptr float)
|
||||
@ cdecl wined3d_device_set_pixel_shader(ptr ptr)
|
||||
@ cdecl wined3d_device_set_predication(ptr ptr long)
|
||||
@ cdecl wined3d_device_set_primitive_type(ptr long long)
|
||||
@ 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)
|
||||
|
@ -184,6 +183,7 @@
|
|||
@ cdecl wined3d_device_context_set_depth_stencil_view(ptr ptr)
|
||||
@ cdecl wined3d_device_context_set_index_buffer(ptr ptr long long)
|
||||
@ cdecl wined3d_device_context_set_predication(ptr ptr long)
|
||||
@ cdecl wined3d_device_context_set_primitive_type(ptr long long)
|
||||
@ cdecl wined3d_device_context_set_rasterizer_state(ptr ptr)
|
||||
@ cdecl wined3d_device_context_set_rendertarget_view(ptr long ptr long)
|
||||
@ cdecl wined3d_device_context_set_sampler(ptr long long ptr)
|
||||
|
|
|
@ -2483,8 +2483,6 @@ HRESULT __cdecl wined3d_device_set_npatch_mode(struct wined3d_device *device, fl
|
|||
void __cdecl wined3d_device_set_pixel_shader(struct wined3d_device *device, struct wined3d_shader *shader);
|
||||
void __cdecl wined3d_device_set_predication(struct wined3d_device *device,
|
||||
struct wined3d_query *predicate, BOOL value);
|
||||
void __cdecl wined3d_device_set_primitive_type(struct wined3d_device *device,
|
||||
enum wined3d_primitive_type primitive_topology, unsigned int patch_vertex_count);
|
||||
void __cdecl wined3d_device_set_ps_resource_view(struct wined3d_device *device,
|
||||
UINT idx, struct wined3d_shader_resource_view *view);
|
||||
void __cdecl wined3d_device_set_ps_sampler(struct wined3d_device *device, UINT idx, struct wined3d_sampler *sampler);
|
||||
|
@ -2599,6 +2597,8 @@ void __cdecl wined3d_device_context_set_index_buffer(struct wined3d_device_conte
|
|||
struct wined3d_buffer *buffer, enum wined3d_format_id format_id, unsigned int offset);
|
||||
void __cdecl wined3d_device_context_set_predication(struct wined3d_device_context *context,
|
||||
struct wined3d_query *predicate, BOOL value);
|
||||
void __cdecl wined3d_device_context_set_primitive_type(struct wined3d_device_context *context,
|
||||
enum wined3d_primitive_type primitive_topology, unsigned int patch_vertex_count);
|
||||
void __cdecl wined3d_device_context_set_rasterizer_state(struct wined3d_device_context *context,
|
||||
struct wined3d_rasterizer_state *rasterizer_state);
|
||||
HRESULT __cdecl wined3d_device_context_set_rendertarget_view(struct wined3d_device_context *context,
|
||||
|
|
Loading…
Reference in New Issue