Zebediah Figura (@zfigura) commented about dlls/ddraw/device.c:
- It will delegate to a single call to wined3d with the correct parameters,
- and a (hopefully) huge list of triangles vertices. */
+static HRESULT ddraw_buffer_flush_internal(struct d3d_device *device) {
- HRESULT hr;
- TRACE_(ddraw_perf)("primitive_type %#x buffer_vertex_count %05lu buffer_indice_count %05lu\n", device->ddraw_device_buffer.primitive_type, device->ddraw_device_buffer.buffer_vertex_count, device->ddraw_device_buffer.buffer_indice_count);
- /* Calling wined3d directly */
- wined3d_mutex_lock();
- hr = wined3d_stateblock_set_stream_source(device->state, 0, device->vertex_buffer.buffer, 0, device->ddraw_device_buffer.stride);
- if (FAILED(hr))
goto done;
I wouldn't bother with the error check here; the function can only actually fail on invalid parameters.