Zebediah Figura (@zfigura) commented about dlls/ddraw/device.c:
- wined3d_stateblock_set_index_buffer(device->state, device->index_buffer.buffer, WINED3DFMT_R16_UINT);
- wined3d_stateblock_set_vertex_declaration(device->state, ddraw_find_decl(device->ddraw, device->ddraw_device_buffer.fvf));
- wined3d_device_context_set_primitive_type(device->immediate_context, wined3d_primitive_type_from_ddraw(D3DPT_TRIANGLELIST), 0);
- if (device->ddraw_device_buffer.primitive_type == D3DPT_POINTLIST) {
- wined3d_device_context_set_primitive_type(device->immediate_context, wined3d_primitive_type_from_ddraw(D3DPT_POINTLIST), 0);
- }
- wined3d_device_apply_stateblock(device->wined3d_device, device->state);
- d3d_device_sync_surfaces(device);
- wined3d_device_context_draw_indexed(device->immediate_context,
device->ddraw_device_buffer.vertex_buffer_pos / device->ddraw_device_buffer.stride,
device->ddraw_device_buffer.idx_buffer_pos / sizeof(*device->ddraw_device_buffer.buffer_indices),
device->ddraw_device_buffer.buffer_indice_count, 0, 0);
Is it faster to use an indexed draw here? (Or at least not slower, I guess). I guess it probably takes up less space for triangle fans, at least, so it's probably a good idea nonethelesss...