wined3d: Get rid of the "recording" field from struct wined3d_device.
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
7af5c1037e
commit
3f918c9479
|
@ -533,10 +533,6 @@ void wined3d_device_cleanup(struct wined3d_device *device)
|
|||
|
||||
wined3d_cs_destroy(device->cs);
|
||||
|
||||
if (device->recording && wined3d_stateblock_decref(device->recording))
|
||||
ERR("Something's still holding the recording stateblock.\n");
|
||||
device->recording = NULL;
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(device->multistate_funcs); ++i)
|
||||
{
|
||||
heap_free(device->multistate_funcs[i]);
|
||||
|
@ -1283,12 +1279,6 @@ HRESULT CDECL wined3d_device_set_stream_source(struct wined3d_device *device, UI
|
|||
device->update_stateblock_state->streams[stream_idx].stride = stride;
|
||||
device->update_stateblock_state->streams[stream_idx].offset = offset;
|
||||
|
||||
if (device->recording)
|
||||
{
|
||||
device->recording->changed.streamSource |= 1u << stream_idx;
|
||||
return WINED3D_OK;
|
||||
}
|
||||
|
||||
if (prev_buffer == buffer
|
||||
&& stream->stride == stride
|
||||
&& stream->offset == offset)
|
||||
|
@ -1365,11 +1355,6 @@ HRESULT CDECL wined3d_device_set_stream_source_freq(struct wined3d_device *devic
|
|||
|
||||
device->update_stateblock_state->streams[stream_idx].flags = flags;
|
||||
device->update_stateblock_state->streams[stream_idx].frequency = freq;
|
||||
if (device->recording)
|
||||
{
|
||||
device->recording->changed.streamFreq |= 1u << stream_idx;
|
||||
return WINED3D_OK;
|
||||
}
|
||||
|
||||
stream->flags = flags;
|
||||
stream->frequency = freq;
|
||||
|
@ -1406,12 +1391,6 @@ void CDECL wined3d_device_set_transform(struct wined3d_device *device,
|
|||
|
||||
/* Handle recording of state blocks. */
|
||||
device->update_stateblock_state->transforms[d3dts] = *matrix;
|
||||
if (device->recording)
|
||||
{
|
||||
TRACE("Recording... not performing anything.\n");
|
||||
device->recording->changed.transform[d3dts >> 5] |= 1u << (d3dts & 0x1f);
|
||||
return;
|
||||
}
|
||||
|
||||
/* If the new matrix is the same as the current one,
|
||||
* we cut off any further processing. this seems to be a reasonable
|
||||
|
@ -1504,8 +1483,6 @@ HRESULT CDECL wined3d_device_set_light(struct wined3d_device *device,
|
|||
|
||||
if (FAILED(hr = wined3d_light_state_set_light(&device->update_stateblock_state->light_state, light_idx, light, &object)))
|
||||
return hr;
|
||||
if (device->recording)
|
||||
return WINED3D_OK;
|
||||
|
||||
if (FAILED(hr = wined3d_light_state_set_light(&device->state.light_state, light_idx, light, &object)))
|
||||
return hr;
|
||||
|
@ -1634,9 +1611,6 @@ HRESULT CDECL wined3d_device_set_light_enable(struct wined3d_device *device, UIN
|
|||
wined3d_light_state_enable_light(&device->update_stateblock_state->light_state,
|
||||
&device->adapter->d3d_info, light_info, enable);
|
||||
|
||||
if (device->recording)
|
||||
return WINED3D_OK;
|
||||
|
||||
/* Special case - enabling an undefined light creates one with a strict set of parameters. */
|
||||
if (!(light_info = wined3d_light_state_get_light(&device->state.light_state, light_idx)))
|
||||
{
|
||||
|
@ -1685,12 +1659,6 @@ HRESULT CDECL wined3d_device_set_clip_plane(struct wined3d_device *device,
|
|||
|
||||
device->update_stateblock_state->clip_planes[plane_idx] = *plane;
|
||||
|
||||
if (device->recording)
|
||||
{
|
||||
device->recording->changed.clipplane |= 1u << plane_idx;
|
||||
return WINED3D_OK;
|
||||
}
|
||||
|
||||
if (!memcmp(&device->state.clip_planes[plane_idx], plane, sizeof(*plane)))
|
||||
{
|
||||
TRACE("Application is setting old values over, nothing to do.\n");
|
||||
|
@ -1747,11 +1715,6 @@ void CDECL wined3d_device_set_material(struct wined3d_device *device, const stru
|
|||
TRACE("device %p, material %p.\n", device, material);
|
||||
|
||||
device->update_stateblock_state->material = *material;
|
||||
if (device->recording)
|
||||
{
|
||||
device->recording->changed.material = TRUE;
|
||||
return;
|
||||
}
|
||||
|
||||
device->state.material = *material;
|
||||
wined3d_cs_emit_set_material(device->cs, material);
|
||||
|
@ -1791,12 +1754,6 @@ void CDECL wined3d_device_set_index_buffer(struct wined3d_device *device,
|
|||
device->update_stateblock_state->index_buffer = buffer;
|
||||
device->update_stateblock_state->index_format = format_id;
|
||||
|
||||
if (device->recording)
|
||||
{
|
||||
device->recording->changed.indices = TRUE;
|
||||
return;
|
||||
}
|
||||
|
||||
if (prev_buffer == buffer && prev_format == format_id && prev_offset == offset)
|
||||
return;
|
||||
|
||||
|
@ -1826,8 +1783,7 @@ void CDECL wined3d_device_set_base_vertex_index(struct wined3d_device *device, I
|
|||
TRACE("device %p, base_index %d.\n", device, base_index);
|
||||
|
||||
device->update_stateblock_state->base_vertex_index = base_index;
|
||||
if (!device->recording)
|
||||
device->state.base_vertex_index = base_index;
|
||||
device->state.base_vertex_index = base_index;
|
||||
}
|
||||
|
||||
INT CDECL wined3d_device_get_base_vertex_index(const struct wined3d_device *device)
|
||||
|
@ -1853,14 +1809,6 @@ void CDECL wined3d_device_set_viewports(struct wined3d_device *device, unsigned
|
|||
if (viewport_count)
|
||||
device->update_stateblock_state->viewport = viewports[0];
|
||||
|
||||
/* Handle recording of state blocks */
|
||||
if (device->recording)
|
||||
{
|
||||
TRACE("Recording... not performing anything\n");
|
||||
device->recording->changed.viewport = TRUE;
|
||||
return;
|
||||
}
|
||||
|
||||
if (viewport_count)
|
||||
memcpy(device->state.viewports, viewports, viewport_count * sizeof(*viewports));
|
||||
else
|
||||
|
@ -1912,11 +1860,6 @@ void CDECL wined3d_device_set_blend_state(struct wined3d_device *device,
|
|||
TRACE("device %p, blend_state %p, blend_factor %s.\n", device, blend_state, debug_color(blend_factor));
|
||||
|
||||
device->update_stateblock_state->blend_factor = *blend_factor;
|
||||
if (device->recording)
|
||||
{
|
||||
device->recording->changed.blend_state = TRUE;
|
||||
return;
|
||||
}
|
||||
|
||||
prev = state->blend_state;
|
||||
if (prev == blend_state && !memcmp(blend_factor, &state->blend_factor, sizeof(*blend_factor)))
|
||||
|
@ -1981,14 +1924,6 @@ void CDECL wined3d_device_set_render_state(struct wined3d_device *device,
|
|||
|
||||
device->update_stateblock_state->rs[state] = value;
|
||||
|
||||
/* Handle recording of state blocks. */
|
||||
if (device->recording)
|
||||
{
|
||||
TRACE("Recording... not performing anything.\n");
|
||||
device->recording->changed.renderState[state >> 5] |= 1u << (state & 0x1f);
|
||||
return;
|
||||
}
|
||||
|
||||
if (value == device->state.render_states[state])
|
||||
TRACE("Application is setting the old value over, nothing to do.\n");
|
||||
else
|
||||
|
@ -2028,14 +1963,6 @@ void CDECL wined3d_device_set_sampler_state(struct wined3d_device *device,
|
|||
|
||||
device->update_stateblock_state->sampler_states[sampler_idx][state] = value;
|
||||
|
||||
/* Handle recording of state blocks. */
|
||||
if (device->recording)
|
||||
{
|
||||
TRACE("Recording... not performing anything.\n");
|
||||
device->recording->changed.samplerState[sampler_idx] |= 1u << state;
|
||||
return;
|
||||
}
|
||||
|
||||
if (value == device->state.sampler_states[sampler_idx][state])
|
||||
{
|
||||
TRACE("Application is setting the old value over, nothing to do.\n");
|
||||
|
@ -2079,12 +2006,6 @@ void CDECL wined3d_device_set_scissor_rects(struct wined3d_device *device, unsig
|
|||
if (rect_count)
|
||||
device->update_stateblock_state->scissor_rect = rects[0];
|
||||
|
||||
if (device->recording)
|
||||
{
|
||||
device->recording->changed.scissorRect = TRUE;
|
||||
return;
|
||||
}
|
||||
|
||||
if (device->state.scissor_rect_count == rect_count
|
||||
&& !memcmp(device->state.scissor_rects, rects, rect_count * sizeof(*rects)))
|
||||
{
|
||||
|
@ -2127,12 +2048,6 @@ void CDECL wined3d_device_set_vertex_declaration(struct wined3d_device *device,
|
|||
wined3d_vertex_declaration_decref(device->update_stateblock_state->vertex_declaration);
|
||||
device->update_stateblock_state->vertex_declaration = declaration;
|
||||
|
||||
if (device->recording)
|
||||
{
|
||||
device->recording->changed.vertexDecl = TRUE;
|
||||
return;
|
||||
}
|
||||
|
||||
if (declaration == prev)
|
||||
return;
|
||||
|
||||
|
@ -2163,12 +2078,6 @@ void CDECL wined3d_device_set_vertex_shader(struct wined3d_device *device, struc
|
|||
wined3d_shader_decref(device->update_stateblock_state->vs);
|
||||
device->update_stateblock_state->vs = shader;
|
||||
|
||||
if (device->recording)
|
||||
{
|
||||
device->recording->changed.vertexShader = TRUE;
|
||||
return;
|
||||
}
|
||||
|
||||
if (shader == prev)
|
||||
return;
|
||||
|
||||
|
@ -2354,12 +2263,6 @@ HRESULT CDECL wined3d_device_set_vs_consts_b(struct wined3d_device *device,
|
|||
count = WINED3D_MAX_CONSTS_B - start_idx;
|
||||
|
||||
memcpy(&device->update_stateblock_state->vs_consts_b[start_idx], constants, count * sizeof(*constants));
|
||||
if (device->recording)
|
||||
{
|
||||
for (i = start_idx; i < count + start_idx; ++i)
|
||||
device->recording->changed.vertexShaderConstantsB |= (1u << i);
|
||||
return WINED3D_OK;
|
||||
}
|
||||
|
||||
memcpy(&device->state.vs_consts_b[start_idx], constants, count * sizeof(*constants));
|
||||
if (TRACE_ON(d3d))
|
||||
|
@ -2404,12 +2307,6 @@ HRESULT CDECL wined3d_device_set_vs_consts_i(struct wined3d_device *device,
|
|||
count = WINED3D_MAX_CONSTS_I - start_idx;
|
||||
|
||||
memcpy(&device->update_stateblock_state->vs_consts_i[start_idx], constants, count * sizeof(*constants));
|
||||
if (device->recording)
|
||||
{
|
||||
for (i = start_idx; i < count + start_idx; ++i)
|
||||
device->recording->changed.vertexShaderConstantsI |= (1u << i);
|
||||
return WINED3D_OK;
|
||||
}
|
||||
|
||||
memcpy(&device->state.vs_consts_i[start_idx], constants, count * sizeof(*constants));
|
||||
if (TRACE_ON(d3d))
|
||||
|
@ -2452,12 +2349,6 @@ HRESULT CDECL wined3d_device_set_vs_consts_f(struct wined3d_device *device,
|
|||
return WINED3DERR_INVALIDCALL;
|
||||
|
||||
memcpy(&device->update_stateblock_state->vs_consts_f[start_idx], constants, count * sizeof(*constants));
|
||||
if (device->recording)
|
||||
{
|
||||
memset(&device->recording->changed.vs_consts_f[start_idx], 1,
|
||||
count * sizeof(*device->recording->changed.vs_consts_f));
|
||||
return WINED3D_OK;
|
||||
}
|
||||
|
||||
memcpy(&device->state.vs_consts_f[start_idx], constants, count * sizeof(*constants));
|
||||
if (TRACE_ON(d3d))
|
||||
|
@ -2499,11 +2390,6 @@ void CDECL wined3d_device_set_pixel_shader(struct wined3d_device *device, struct
|
|||
if (device->update_stateblock_state->ps)
|
||||
wined3d_shader_decref(device->update_stateblock_state->ps);
|
||||
device->update_stateblock_state->ps = shader;
|
||||
if (device->recording)
|
||||
{
|
||||
device->recording->changed.pixelShader = TRUE;
|
||||
return;
|
||||
}
|
||||
|
||||
if (shader == prev)
|
||||
return;
|
||||
|
@ -2568,12 +2454,6 @@ HRESULT CDECL wined3d_device_set_ps_consts_b(struct wined3d_device *device,
|
|||
count = WINED3D_MAX_CONSTS_B - start_idx;
|
||||
|
||||
memcpy(&device->update_stateblock_state->ps_consts_b[start_idx], constants, count * sizeof(*constants));
|
||||
if (device->recording)
|
||||
{
|
||||
for (i = start_idx; i < count + start_idx; ++i)
|
||||
device->recording->changed.pixelShaderConstantsB |= (1u << i);
|
||||
return WINED3D_OK;
|
||||
}
|
||||
|
||||
memcpy(&device->state.ps_consts_b[start_idx], constants, count * sizeof(*constants));
|
||||
if (TRACE_ON(d3d))
|
||||
|
@ -2618,12 +2498,6 @@ HRESULT CDECL wined3d_device_set_ps_consts_i(struct wined3d_device *device,
|
|||
count = WINED3D_MAX_CONSTS_I - start_idx;
|
||||
|
||||
memcpy(&device->update_stateblock_state->ps_consts_i[start_idx], constants, count * sizeof(*constants));
|
||||
if (device->recording)
|
||||
{
|
||||
for (i = start_idx; i < count + start_idx; ++i)
|
||||
device->recording->changed.pixelShaderConstantsI |= (1u << i);
|
||||
return WINED3D_OK;
|
||||
}
|
||||
|
||||
memcpy(&device->state.ps_consts_i[start_idx], constants, count * sizeof(*constants));
|
||||
if (TRACE_ON(d3d))
|
||||
|
@ -2667,12 +2541,6 @@ HRESULT CDECL wined3d_device_set_ps_consts_f(struct wined3d_device *device,
|
|||
return WINED3DERR_INVALIDCALL;
|
||||
|
||||
memcpy(&device->update_stateblock_state->ps_consts_f[start_idx], constants, count * sizeof(*constants));
|
||||
if (device->recording)
|
||||
{
|
||||
memset(&device->recording->changed.ps_consts_f[start_idx], 1,
|
||||
count * sizeof(*device->recording->changed.ps_consts_f));
|
||||
return WINED3D_OK;
|
||||
}
|
||||
|
||||
memcpy(&device->state.ps_consts_f[start_idx], constants, count * sizeof(*constants));
|
||||
if (TRACE_ON(d3d))
|
||||
|
@ -3970,13 +3838,6 @@ void CDECL wined3d_device_set_texture_stage_state(struct wined3d_device *device,
|
|||
|
||||
device->update_stateblock_state->texture_states[stage][state] = value;
|
||||
|
||||
if (device->recording)
|
||||
{
|
||||
TRACE("Recording... not performing anything.\n");
|
||||
device->recording->changed.textureState[stage] |= 1u << state;
|
||||
return;
|
||||
}
|
||||
|
||||
if (value == device->state.texture_states[stage][state])
|
||||
{
|
||||
TRACE("Application is setting the old value over, nothing to do.\n");
|
||||
|
@ -4026,12 +3887,6 @@ void CDECL wined3d_device_set_texture(struct wined3d_device *device,
|
|||
wined3d_texture_decref(device->update_stateblock_state->textures[stage]);
|
||||
device->update_stateblock_state->textures[stage] = texture;
|
||||
|
||||
if (device->recording)
|
||||
{
|
||||
device->recording->changed.textures |= 1u << stage;
|
||||
return;
|
||||
}
|
||||
|
||||
prev = device->state.textures[stage];
|
||||
TRACE("Previous texture %p.\n", prev);
|
||||
|
||||
|
@ -5538,11 +5393,6 @@ HRESULT CDECL wined3d_device_reset(struct wined3d_device *device,
|
|||
if (reset_state)
|
||||
{
|
||||
TRACE("Resetting stateblock.\n");
|
||||
if (device->recording)
|
||||
{
|
||||
wined3d_stateblock_decref(device->recording);
|
||||
device->recording = NULL;
|
||||
}
|
||||
wined3d_cs_emit_reset_state(device->cs);
|
||||
state_cleanup(&device->state);
|
||||
|
||||
|
@ -5693,13 +5543,6 @@ void device_resource_released(struct wined3d_device *device, struct wined3d_reso
|
|||
ERR("Texture resource %p is still in use, stage %u.\n", resource, i);
|
||||
device->state.textures[i] = NULL;
|
||||
}
|
||||
|
||||
if (device->recording && &device->update_stateblock_state->textures[i]->resource == resource)
|
||||
{
|
||||
ERR("Texture resource %p is still in use by recording stateblock %p, stage %u.\n",
|
||||
resource, device->recording, i);
|
||||
device->update_stateblock_state->textures[i] = NULL;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -5711,13 +5554,6 @@ void device_resource_released(struct wined3d_device *device, struct wined3d_reso
|
|||
ERR("Buffer resource %p is still in use, stream %u.\n", resource, i);
|
||||
device->state.streams[i].buffer = NULL;
|
||||
}
|
||||
|
||||
if (device->recording && &device->update_stateblock_state->streams[i].buffer->resource == resource)
|
||||
{
|
||||
ERR("Buffer resource %p is still in use by stateblock %p, stream %u.\n",
|
||||
resource, device->recording, i);
|
||||
device->update_stateblock_state->streams[i].buffer = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
if (&device->state.index_buffer->resource == resource)
|
||||
|
@ -5725,13 +5561,6 @@ void device_resource_released(struct wined3d_device *device, struct wined3d_reso
|
|||
ERR("Buffer resource %p is still in use as index buffer.\n", resource);
|
||||
device->state.index_buffer = NULL;
|
||||
}
|
||||
|
||||
if (device->recording && &device->update_stateblock_state->index_buffer->resource == resource)
|
||||
{
|
||||
ERR("Buffer resource %p is still in use by stateblock %p as index buffer.\n",
|
||||
resource, device->recording);
|
||||
device->update_stateblock_state->index_buffer = NULL;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
|
|
|
@ -3282,7 +3282,6 @@ struct wined3d_device
|
|||
enum wined3d_feature_level feature_level;
|
||||
|
||||
struct wined3d_state state;
|
||||
struct wined3d_stateblock *recording;
|
||||
struct wined3d_stateblock_state stateblock_state;
|
||||
struct wined3d_stateblock_state *update_stateblock_state;
|
||||
|
||||
|
|
Loading…
Reference in New Issue