Commit 77923346 authored by Henri Verbeet's avatar Henri Verbeet Committed by Alexandre Julliard

wined3d: Pass an IWineD3DDeviceImpl pointer to shader_update_float_pixel_constants().

parent 4a6d0da2
...@@ -665,17 +665,16 @@ static void shader_arb_update_float_vertex_constants(IWineD3DDeviceImpl *device, ...@@ -665,17 +665,16 @@ static void shader_arb_update_float_vertex_constants(IWineD3DDeviceImpl *device,
device->highest_dirty_vs_const = max(device->highest_dirty_vs_const, start + count); device->highest_dirty_vs_const = max(device->highest_dirty_vs_const, start + count);
} }
static void shader_arb_update_float_pixel_constants(IWineD3DDevice *iface, UINT start, UINT count) static void shader_arb_update_float_pixel_constants(IWineD3DDeviceImpl *device, UINT start, UINT count)
{ {
IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *)iface;
struct wined3d_context *context = context_get_current(); struct wined3d_context *context = context_get_current();
/* We don't want shader constant dirtification to be an O(contexts), so just dirtify the active /* We don't want shader constant dirtification to be an O(contexts), so just dirtify the active
* context. On a context switch the old context will be fully dirtified */ * context. On a context switch the old context will be fully dirtified */
if (!context || context->swapchain->device != This) return; if (!context || context->swapchain->device != device) return;
memset(context->pshader_const_dirty + start, 1, sizeof(*context->pshader_const_dirty) * count); memset(context->pshader_const_dirty + start, 1, sizeof(*context->pshader_const_dirty) * count);
This->highest_dirty_ps_const = max(This->highest_dirty_ps_const, start + count); device->highest_dirty_ps_const = max(device->highest_dirty_ps_const, start + count);
} }
static DWORD *local_const_mapping(IWineD3DBaseShaderImpl *This) static DWORD *local_const_mapping(IWineD3DBaseShaderImpl *This)
......
...@@ -3861,7 +3861,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_SetPixelShaderConstantF( ...@@ -3861,7 +3861,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_SetPixelShaderConstantF(
if (!This->isRecordingState) if (!This->isRecordingState)
{ {
This->shader_backend->shader_update_float_pixel_constants(iface, start, count); This->shader_backend->shader_update_float_pixel_constants(This, start, count);
IWineD3DDeviceImpl_MarkStateDirty(This, STATE_PIXELSHADERCONSTANT); IWineD3DDeviceImpl_MarkStateDirty(This, STATE_PIXELSHADERCONSTANT);
} }
......
...@@ -878,16 +878,15 @@ static void shader_glsl_update_float_vertex_constants(IWineD3DDeviceImpl *device ...@@ -878,16 +878,15 @@ static void shader_glsl_update_float_vertex_constants(IWineD3DDeviceImpl *device
} }
} }
static void shader_glsl_update_float_pixel_constants(IWineD3DDevice *iface, UINT start, UINT count) static void shader_glsl_update_float_pixel_constants(IWineD3DDeviceImpl *device, UINT start, UINT count)
{ {
IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *)iface; struct shader_glsl_priv *priv = device->shader_priv;
struct shader_glsl_priv *priv = This->shader_priv;
struct constant_heap *heap = &priv->pconst_heap; struct constant_heap *heap = &priv->pconst_heap;
UINT i; UINT i;
for (i = start; i < count + start; ++i) for (i = start; i < count + start; ++i)
{ {
if (!This->stateBlock->changed.pixelShaderConstantsF[i]) if (!device->stateBlock->changed.pixelShaderConstantsF[i])
update_heap_entry(heap, i, heap->size++, priv->next_constant_version); update_heap_entry(heap, i, heap->size++, priv->next_constant_version);
else else
update_heap_entry(heap, i, heap->positions[i], priv->next_constant_version); update_heap_entry(heap, i, heap->positions[i], priv->next_constant_version);
......
...@@ -1514,7 +1514,7 @@ static void shader_none_select_depth_blt(void *shader_priv, const struct wined3d ...@@ -1514,7 +1514,7 @@ static void shader_none_select_depth_blt(void *shader_priv, const struct wined3d
enum tex_types tex_type, const SIZE *ds_mask_size) {} enum tex_types tex_type, const SIZE *ds_mask_size) {}
static void shader_none_deselect_depth_blt(void *shader_priv, const struct wined3d_gl_info *gl_info) {} static void shader_none_deselect_depth_blt(void *shader_priv, const struct wined3d_gl_info *gl_info) {}
static void shader_none_update_float_vertex_constants(IWineD3DDeviceImpl *device, UINT start, UINT count) {} static void shader_none_update_float_vertex_constants(IWineD3DDeviceImpl *device, UINT start, UINT count) {}
static void shader_none_update_float_pixel_constants(IWineD3DDevice *iface, UINT start, UINT count) {} static void shader_none_update_float_pixel_constants(IWineD3DDeviceImpl *device, UINT start, UINT count) {}
static void shader_none_load_constants(const struct wined3d_context *context, char usePS, char useVS) {} static void shader_none_load_constants(const struct wined3d_context *context, char usePS, char useVS) {}
static void shader_none_load_np2fixup_constants(void *shader_priv, static void shader_none_load_np2fixup_constants(void *shader_priv,
const struct wined3d_gl_info *gl_info, const struct wined3d_state *state) {} const struct wined3d_gl_info *gl_info, const struct wined3d_state *state) {}
......
...@@ -754,7 +754,7 @@ typedef struct { ...@@ -754,7 +754,7 @@ typedef struct {
enum tex_types tex_type, const SIZE *ds_mask_size); enum tex_types tex_type, const SIZE *ds_mask_size);
void (*shader_deselect_depth_blt)(void *shader_priv, const struct wined3d_gl_info *gl_info); void (*shader_deselect_depth_blt)(void *shader_priv, const struct wined3d_gl_info *gl_info);
void (*shader_update_float_vertex_constants)(IWineD3DDeviceImpl *device, UINT start, UINT count); void (*shader_update_float_vertex_constants)(IWineD3DDeviceImpl *device, UINT start, UINT count);
void (*shader_update_float_pixel_constants)(IWineD3DDevice *iface, UINT start, UINT count); void (*shader_update_float_pixel_constants)(IWineD3DDeviceImpl *device, UINT start, UINT count);
void (*shader_load_constants)(const struct wined3d_context *context, char usePS, char useVS); void (*shader_load_constants)(const struct wined3d_context *context, char usePS, char useVS);
void (*shader_load_np2fixup_constants)(void *shader_priv, const struct wined3d_gl_info *gl_info, void (*shader_load_np2fixup_constants)(void *shader_priv, const struct wined3d_gl_info *gl_info,
const struct wined3d_state *state); const struct wined3d_state *state);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment