Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com>
---
dlls/wined3d/arb_program_shader.c | 7 +++--
dlls/wined3d/ati_fragment_shader.c | 11 +++----
dlls/wined3d/context.c | 58 ++++++++++++++++++------------------
dlls/wined3d/nvidia_texture_shader.c | 13 +++++---
dlls/wined3d/state.c | 23 +++++++-------
dlls/wined3d/texture.c | 4 +--
dlls/wined3d/utils.c | 4 +--
dlls/wined3d/view.c | 4 +--
dlls/wined3d/wined3d_private.h | 6 ++--
9 files changed, 69 insertions(+), 61 deletions(-)
diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader.c
index 8409a5438dd..b1837041293 100644
--- a/dlls/wined3d/arb_program_shader.c
+++ b/dlls/wined3d/arb_program_shader.c
@@ -4476,6 +4476,7 @@ static void find_arb_vs_compile_args(const struct wined3d_state *state,
const struct wined3d_context *context, const struct wined3d_shader *shader,
struct arb_vs_compile_args *args)
{
+ const struct wined3d_context_gl *context_gl = wined3d_context_gl_const(context);
const struct wined3d_device *device = shader->device;
const struct wined3d_adapter *adapter = device->adapter;
const struct wined3d_gl_info *gl_info = context->gl_info;
@@ -4518,9 +4519,9 @@ static void find_arb_vs_compile_args(const struct wined3d_state *state,
args->clip.boolclip.bools |= (1u << i);
}
- args->vertex.samplers[0] = context->tex_unit_map[WINED3D_MAX_FRAGMENT_SAMPLERS + 0];
- args->vertex.samplers[1] = context->tex_unit_map[WINED3D_MAX_FRAGMENT_SAMPLERS + 1];
- args->vertex.samplers[2] = context->tex_unit_map[WINED3D_MAX_FRAGMENT_SAMPLERS + 2];
+ args->vertex.samplers[0] = context_gl->tex_unit_map[WINED3D_MAX_FRAGMENT_SAMPLERS + 0];
+ args->vertex.samplers[1] = context_gl->tex_unit_map[WINED3D_MAX_FRAGMENT_SAMPLERS + 1];
+ args->vertex.samplers[2] = context_gl->tex_unit_map[WINED3D_MAX_FRAGMENT_SAMPLERS + 2];
args->vertex.samplers[3] = 0;
/* Skip if unused or local */
diff --git a/dlls/wined3d/ati_fragment_shader.c b/dlls/wined3d/ati_fragment_shader.c
index 959f4f80e1d..0a7b832c7f9 100644
--- a/dlls/wined3d/ati_fragment_shader.c
+++ b/dlls/wined3d/ati_fragment_shader.c
@@ -1010,13 +1010,14 @@ static void atifs_stage_constant(struct wined3d_context *context, const struct w
static void set_tex_op_atifs(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
{
- const struct wined3d_device *device = context->device;
- const struct wined3d_gl_info *gl_info = context->gl_info;
- const struct wined3d_d3d_info *d3d_info = context->d3d_info;
struct atifs_context_private_data *ctx_priv = context->fragment_pipe_data;
const struct atifs_ffp_desc *desc, *last_shader = ctx_priv->last_shader;
- struct ffp_frag_settings settings;
+ struct wined3d_context_gl *context_gl = wined3d_context_gl(context);
+ const struct wined3d_d3d_info *d3d_info = context->d3d_info;
+ const struct wined3d_gl_info *gl_info = context->gl_info;
+ const struct wined3d_device *device = context->device;
struct atifs_private_data *priv = device->fragment_priv;
+ struct ffp_frag_settings settings;
DWORD mapped_stage;
unsigned int i;
@@ -1051,7 +1052,7 @@ static void set_tex_op_atifs(struct wined3d_context *context, const struct wined
*/
for (i = 0; i < desc->num_textures_used; ++i)
{
- mapped_stage = context->tex_unit_map[i];
+ mapped_stage = context_gl->tex_unit_map[i];
if (mapped_stage != WINED3D_UNMAPPED_STAGE)
{
context_active_texture(context, gl_info, mapped_stage);
diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
index 13deb540aa5..c291c4cdbc7 100644
--- a/dlls/wined3d/context.c
+++ b/dlls/wined3d/context.c
@@ -1994,37 +1994,37 @@ HRESULT wined3d_context_gl_init(struct wined3d_context_gl *context_gl, struct wi
gl_info = context->gl_info;
d3d_info = context->d3d_info;
- for (i = 0; i < ARRAY_SIZE(context->tex_unit_map); ++i)
- context->tex_unit_map[i] = WINED3D_UNMAPPED_STAGE;
- for (i = 0; i < ARRAY_SIZE(context->rev_tex_unit_map); ++i)
- context->rev_tex_unit_map[i] = WINED3D_UNMAPPED_STAGE;
+ for (i = 0; i < ARRAY_SIZE(context_gl->tex_unit_map); ++i)
+ context_gl->tex_unit_map[i] = WINED3D_UNMAPPED_STAGE;
+ for (i = 0; i < ARRAY_SIZE(context_gl->rev_tex_unit_map); ++i)
+ context_gl->rev_tex_unit_map[i] = WINED3D_UNMAPPED_STAGE;
if (gl_info->limits.graphics_samplers >= WINED3D_MAX_COMBINED_SAMPLERS)
{
/* Initialize the texture unit mapping to a 1:1 mapping. */
unsigned int base, count;
wined3d_gl_limits_get_texture_unit_range(&gl_info->limits, WINED3D_SHADER_TYPE_PIXEL, &base, &count);
- if (base + WINED3D_MAX_FRAGMENT_SAMPLERS > ARRAY_SIZE(context->rev_tex_unit_map))
+ if (base + WINED3D_MAX_FRAGMENT_SAMPLERS > ARRAY_SIZE(context_gl->rev_tex_unit_map))
{
ERR("Unexpected texture unit base index %u.\n", base);
return E_FAIL;
}
for (i = 0; i < min(count, WINED3D_MAX_FRAGMENT_SAMPLERS); ++i)
{
- context->tex_unit_map[i] = base + i;
- context->rev_tex_unit_map[base + i] = i;
+ context_gl->tex_unit_map[i] = base + i;
+ context_gl->rev_tex_unit_map[base + i] = i;
}
wined3d_gl_limits_get_texture_unit_range(&gl_info->limits, WINED3D_SHADER_TYPE_VERTEX, &base, &count);
- if (base + WINED3D_MAX_VERTEX_SAMPLERS > ARRAY_SIZE(context->rev_tex_unit_map))
+ if (base + WINED3D_MAX_VERTEX_SAMPLERS > ARRAY_SIZE(context_gl->rev_tex_unit_map))
{
ERR("Unexpected texture unit base index %u.\n", base);
return E_FAIL;
}
for (i = 0; i < min(count, WINED3D_MAX_VERTEX_SAMPLERS); ++i)
{
- context->tex_unit_map[WINED3D_MAX_FRAGMENT_SAMPLERS + i] = base + i;
- context->rev_tex_unit_map[base + i] = WINED3D_MAX_FRAGMENT_SAMPLERS + i;
+ context_gl->tex_unit_map[WINED3D_MAX_FRAGMENT_SAMPLERS + i] = base + i;
+ context_gl->rev_tex_unit_map[base + i] = WINED3D_MAX_FRAGMENT_SAMPLERS + i;
}
}
@@ -2378,7 +2378,7 @@ const unsigned int *wined3d_context_gl_get_tex_unit_mapping(const struct wined3d
{
*base = 0;
*count = WINED3D_MAX_TEXTURES;
- return context_gl->c.tex_unit_map;
+ return context_gl->tex_unit_map;
}
if (shader_version->major >= 4)
@@ -2403,7 +2403,7 @@ const unsigned int *wined3d_context_gl_get_tex_unit_mapping(const struct wined3d
*count = 0;
}
- return context_gl->c.tex_unit_map;
+ return context_gl->tex_unit_map;
}
static void context_get_rt_size(const struct wined3d_context *context, SIZE *size)
@@ -2826,7 +2826,7 @@ void wined3d_context_gl_apply_blit_state(struct wined3d_context_gl *context_gl,
GL_EXTCALL(glBindSampler(0, 0));
context_active_texture(context, gl_info, 0);
- sampler = context->rev_tex_unit_map[0];
+ sampler = context_gl->rev_tex_unit_map[0];
if (sampler != WINED3D_UNMAPPED_STAGE)
{
if (sampler < WINED3D_MAX_TEXTURES)
@@ -2950,7 +2950,7 @@ void wined3d_context_gl_apply_ffp_blit_state(struct wined3d_context_gl *context_
gl_info->gl_ops.gl.p_glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
- sampler = context->rev_tex_unit_map[i];
+ sampler = context_gl->rev_tex_unit_map[i];
if (sampler != WINED3D_UNMAPPED_STAGE)
{
if (sampler < WINED3D_MAX_TEXTURES)
@@ -3226,17 +3226,17 @@ void context_state_fb(struct wined3d_context *context, const struct wined3d_stat
static void wined3d_context_gl_map_stage(struct wined3d_context_gl *context_gl, unsigned int stage, unsigned int unit)
{
- unsigned int i = context_gl->c.rev_tex_unit_map[unit];
- unsigned int j = context_gl->c.tex_unit_map[stage];
+ unsigned int i = context_gl->rev_tex_unit_map[unit];
+ unsigned int j = context_gl->tex_unit_map[stage];
TRACE("Mapping stage %u to unit %u.\n", stage, unit);
- context_gl->c.tex_unit_map[stage] = unit;
+ context_gl->tex_unit_map[stage] = unit;
if (i != WINED3D_UNMAPPED_STAGE && i != stage)
- context_gl->c.tex_unit_map[i] = WINED3D_UNMAPPED_STAGE;
+ context_gl->tex_unit_map[i] = WINED3D_UNMAPPED_STAGE;
- context_gl->c.rev_tex_unit_map[unit] = stage;
+ context_gl->rev_tex_unit_map[unit] = stage;
if (j != WINED3D_UNMAPPED_STAGE && j != unit)
- context_gl->c.rev_tex_unit_map[j] = WINED3D_UNMAPPED_STAGE;
+ context_gl->rev_tex_unit_map[j] = WINED3D_UNMAPPED_STAGE;
}
static void context_invalidate_texture_stage(struct wined3d_context *context, DWORD stage)
@@ -3318,7 +3318,7 @@ static void wined3d_context_gl_map_fixed_function_samplers(struct wined3d_contex
if (!(ffu_map & 1))
continue;
- if (context_gl->c.tex_unit_map[i] != i)
+ if (context_gl->tex_unit_map[i] != i)
{
wined3d_context_gl_map_stage(context_gl, i, i);
context_invalidate_state(&context_gl->c, STATE_SAMPLER(i));
@@ -3335,7 +3335,7 @@ static void wined3d_context_gl_map_fixed_function_samplers(struct wined3d_contex
if (!(ffu_map & 1))
continue;
- if (context_gl->c.tex_unit_map[i] != tex)
+ if (context_gl->tex_unit_map[i] != tex)
{
wined3d_context_gl_map_stage(context_gl, i, tex);
context_invalidate_state(&context_gl->c, STATE_SAMPLER(i));
@@ -3355,7 +3355,7 @@ static void wined3d_context_gl_map_psamplers(struct wined3d_context_gl *context_
for (i = 0; i < WINED3D_MAX_FRAGMENT_SAMPLERS; ++i)
{
- if (resource_info[i].type && context_gl->c.tex_unit_map[i] != i)
+ if (resource_info[i].type && context_gl->tex_unit_map[i] != i)
{
wined3d_context_gl_map_stage(context_gl, i, i);
context_invalidate_state(&context_gl->c, STATE_SAMPLER(i));
@@ -3368,7 +3368,7 @@ static void wined3d_context_gl_map_psamplers(struct wined3d_context_gl *context_
static BOOL wined3d_context_gl_unit_free_for_vs(const struct wined3d_context_gl *context_gl,
const struct wined3d_shader_resource_info *ps_resource_info, unsigned int unit)
{
- unsigned int current_mapping = context_gl->c.rev_tex_unit_map[unit];
+ unsigned int current_mapping = context_gl->rev_tex_unit_map[unit];
/* Not currently used */
if (current_mapping == WINED3D_UNMAPPED_STAGE)
@@ -3417,7 +3417,7 @@ static void wined3d_context_gl_map_vsamplers(struct wined3d_context_gl *context_
{
if (wined3d_context_gl_unit_free_for_vs(context_gl, ps_resource_info, start))
{
- if (context_gl->c.tex_unit_map[vsampler_idx] != start)
+ if (context_gl->tex_unit_map[vsampler_idx] != start)
{
wined3d_context_gl_map_stage(context_gl, vsampler_idx, start);
context_invalidate_state(&context_gl->c, STATE_SAMPLER(vsampler_idx));
@@ -3429,7 +3429,7 @@ static void wined3d_context_gl_map_vsamplers(struct wined3d_context_gl *context_
--start;
}
- if (context_gl->c.tex_unit_map[vsampler_idx] == WINED3D_UNMAPPED_STAGE)
+ if (context_gl->tex_unit_map[vsampler_idx] == WINED3D_UNMAPPED_STAGE)
WARN("Couldn't find a free texture unit for vertex sampler %u.\n", i);
}
}
@@ -4636,7 +4636,7 @@ static void draw_primitive_immediate_mode(struct wined3d_context_gl *context_gl,
if (!ps && !state->textures[texture_idx])
continue;
- texture_unit = context_gl->c.tex_unit_map[texture_idx];
+ texture_unit = context_gl->tex_unit_map[texture_idx];
if (texture_unit == WINED3D_UNMAPPED_STAGE)
continue;
@@ -4714,7 +4714,7 @@ static void draw_primitive_immediate_mode(struct wined3d_context_gl *context_gl,
coord_idx = state->texture_states[texture_idx][WINED3D_TSS_TEXCOORD_INDEX];
ptr = tex_coords[coord_idx] + (stride_idx * si->elements[WINED3D_FFP_TEXCOORD0 + coord_idx].stride);
ops->texcoord[si->elements[WINED3D_FFP_TEXCOORD0 + coord_idx].format->emit_idx](
- GL_TEXTURE0_ARB + context_gl->c.tex_unit_map[texture_idx], ptr);
+ GL_TEXTURE0_ARB + context_gl->tex_unit_map[texture_idx], ptr);
}
if (position)
@@ -5060,7 +5060,7 @@ void wined3d_context_gl_load_tex_coords(const struct wined3d_context_gl *context
{
unsigned int coord_idx = state->texture_states[texture_idx][WINED3D_TSS_TEXCOORD_INDEX];
- if ((mapped_stage = context_gl->c.tex_unit_map[texture_idx]) == WINED3D_UNMAPPED_STAGE)
+ if ((mapped_stage = context_gl->tex_unit_map[texture_idx]) == WINED3D_UNMAPPED_STAGE)
continue;
if (mapped_stage >= gl_info->limits.texture_coords)
diff --git a/dlls/wined3d/nvidia_texture_shader.c b/dlls/wined3d/nvidia_texture_shader.c
index fd8022433cc..c95a6cb3539 100644
--- a/dlls/wined3d/nvidia_texture_shader.c
+++ b/dlls/wined3d/nvidia_texture_shader.c
@@ -482,8 +482,9 @@ void set_tex_op_nvrc(const struct wined3d_gl_info *gl_info, const struct wined3d
static void nvrc_colorop(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
{
DWORD stage = (state_id - STATE_TEXTURESTAGE(0, 0)) / (WINED3D_HIGHEST_TEXTURE_STATE + 1);
+ struct wined3d_context_gl *context_gl = wined3d_context_gl(context);
BOOL tex_used = context->fixed_function_usage_map & (1u << stage);
- DWORD mapped_stage = context->tex_unit_map[stage];
+ unsigned int mapped_stage = context_gl->tex_unit_map[stage];
const struct wined3d_gl_info *gl_info = context->gl_info;
TRACE("Setting color op for stage %u.\n", stage);
@@ -603,8 +604,11 @@ static void nvrc_resultarg(struct wined3d_context *context, const struct wined3d
static void nvts_texdim(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
{
- DWORD sampler = state_id - STATE_SAMPLER(0);
- DWORD mapped_stage = context->tex_unit_map[sampler];
+ struct wined3d_context_gl *context_gl = wined3d_context_gl(context);
+ unsigned int sampler, mapped_stage;
+
+ sampler = state_id - STATE_SAMPLER(0);
+ mapped_stage = context_gl->tex_unit_map[sampler];
/* No need to enable / disable anything here for unused samplers. The tex_colorop
* handler takes care. Also no action is needed with pixel shaders, or if tex_colorop
@@ -622,7 +626,8 @@ static void nvts_texdim(struct wined3d_context *context, const struct wined3d_st
static void nvts_bumpenvmat(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
{
DWORD stage = (state_id - STATE_TEXTURESTAGE(0, 0)) / (WINED3D_HIGHEST_TEXTURE_STATE + 1);
- DWORD mapped_stage = context->tex_unit_map[stage + 1];
+ struct wined3d_context_gl *context_gl = wined3d_context_gl(context);
+ unsigned int mapped_stage = context_gl->tex_unit_map[stage + 1];
const struct wined3d_gl_info *gl_info = context->gl_info;
float mat[2][2];
diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c
index 0c3e8457462..729100adb21 100644
--- a/dlls/wined3d/state.c
+++ b/dlls/wined3d/state.c
@@ -3127,9 +3127,9 @@ static void set_tex_op(const struct wined3d_gl_info *gl_info, const struct wined
static void tex_colorop(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
{
- DWORD stage = (state_id - STATE_TEXTURESTAGE(0, 0)) / (WINED3D_HIGHEST_TEXTURE_STATE + 1);
+ unsigned int stage = (state_id - STATE_TEXTURESTAGE(0, 0)) / (WINED3D_HIGHEST_TEXTURE_STATE + 1);
+ unsigned int mapped_stage = wined3d_context_gl(context)->tex_unit_map[stage];
BOOL tex_used = context->fixed_function_usage_map & (1u << stage);
- DWORD mapped_stage = context->tex_unit_map[stage];
const struct wined3d_gl_info *gl_info = context->gl_info;
TRACE("Setting color op for stage %d\n", stage);
@@ -3188,9 +3188,9 @@ static void tex_colorop(struct wined3d_context *context, const struct wined3d_st
void tex_alphaop(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
{
- DWORD stage = (state_id - STATE_TEXTURESTAGE(0, 0)) / (WINED3D_HIGHEST_TEXTURE_STATE + 1);
+ unsigned int stage = (state_id - STATE_TEXTURESTAGE(0, 0)) / (WINED3D_HIGHEST_TEXTURE_STATE + 1);
+ unsigned int mapped_stage = wined3d_context_gl(context)->tex_unit_map[stage];
BOOL tex_used = context->fixed_function_usage_map & (1u << stage);
- DWORD mapped_stage = context->tex_unit_map[stage];
const struct wined3d_gl_info *gl_info = context->gl_info;
DWORD op, arg1, arg2, arg0;
@@ -3287,9 +3287,9 @@ void tex_alphaop(struct wined3d_context *context, const struct wined3d_state *st
static void transform_texture(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
{
- const struct wined3d_gl_info *gl_info = context->gl_info;
unsigned int tex = (state_id - STATE_TEXTURESTAGE(0, 0)) / (WINED3D_HIGHEST_TEXTURE_STATE + 1);
- unsigned int mapped_stage = context->tex_unit_map[tex];
+ unsigned int mapped_stage = wined3d_context_gl(context)->tex_unit_map[tex];
+ const struct wined3d_gl_info *gl_info = context->gl_info;
struct wined3d_matrix mat;
/* Ignore this when a vertex shader is used, or if the streams aren't sorted out yet */
@@ -3314,14 +3314,15 @@ static void transform_texture(struct wined3d_context *context, const struct wine
static void tex_coordindex(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
{
- DWORD stage = (state_id - STATE_TEXTURESTAGE(0, 0)) / (WINED3D_HIGHEST_TEXTURE_STATE + 1);
+ unsigned int stage = (state_id - STATE_TEXTURESTAGE(0, 0)) / (WINED3D_HIGHEST_TEXTURE_STATE + 1);
struct wined3d_context_gl *context_gl = wined3d_context_gl(context);
+ unsigned int mapped_stage = context_gl->tex_unit_map[stage];
+ const struct wined3d_gl_info *gl_info = context->gl_info;
+
static const GLfloat s_plane[] = { 1.0f, 0.0f, 0.0f, 0.0f };
static const GLfloat t_plane[] = { 0.0f, 1.0f, 0.0f, 0.0f };
static const GLfloat r_plane[] = { 0.0f, 0.0f, 1.0f, 0.0f };
static const GLfloat q_plane[] = { 0.0f, 0.0f, 0.0f, 1.0f };
- const struct wined3d_gl_info *gl_info = context->gl_info;
- DWORD mapped_stage = context->tex_unit_map[stage];
if (mapped_stage == WINED3D_UNMAPPED_STAGE)
{
@@ -3598,8 +3599,8 @@ static void wined3d_sampler_desc_from_sampler_states(struct wined3d_sampler_desc
static void sampler(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
{
struct wined3d_context_gl *context_gl = wined3d_context_gl(context);
- DWORD sampler_idx = state_id - STATE_SAMPLER(0);
- DWORD mapped_stage = context->tex_unit_map[sampler_idx];
+ unsigned int sampler_idx = state_id - STATE_SAMPLER(0);
+ unsigned int mapped_stage = context_gl->tex_unit_map[sampler_idx];
const struct wined3d_gl_info *gl_info = context->gl_info;
TRACE("Sampler %u.\n", sampler_idx);
diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
index 8097bb23f74..235b9f57bd1 100644
--- a/dlls/wined3d/texture.c
+++ b/dlls/wined3d/texture.c
@@ -1061,9 +1061,9 @@ void wined3d_texture_gl_bind_and_dirtify(struct wined3d_texture_gl *texture_gl,
* called from sampler() in state.c. This means we can't touch anything
* other than whatever happens to be the currently active texture, or we
* would risk marking already applied sampler states dirty again. */
- if (context_gl->c.active_texture < ARRAY_SIZE(context_gl->c.rev_tex_unit_map))
+ if (context_gl->c.active_texture < ARRAY_SIZE(context_gl->rev_tex_unit_map))
{
- DWORD active_sampler = context_gl->c.rev_tex_unit_map[context_gl->c.active_texture];
+ unsigned int active_sampler = context_gl->rev_tex_unit_map[context_gl->c.active_texture];
if (active_sampler != WINED3D_UNMAPPED_STAGE)
context_invalidate_state(&context_gl->c, STATE_SAMPLER(active_sampler));
}
diff --git a/dlls/wined3d/utils.c b/dlls/wined3d/utils.c
index 2ec3546125b..669c8cbbbd2 100644
--- a/dlls/wined3d/utils.c
+++ b/dlls/wined3d/utils.c
@@ -6354,8 +6354,8 @@ void texture_activate_dimensions(struct wined3d_texture *texture, const struct w
/* Context activation is done by the caller (state handler). */
void sampler_texdim(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
{
- DWORD sampler = state_id - STATE_SAMPLER(0);
- DWORD mapped_stage = context->tex_unit_map[sampler];
+ unsigned int sampler = state_id - STATE_SAMPLER(0);
+ unsigned int mapped_stage = wined3d_context_gl(context)->tex_unit_map[sampler];
/* No need to enable / disable anything here for unused samplers. The
* tex_colorop handler takes care. Also no action is needed with pixel
diff --git a/dlls/wined3d/view.c b/dlls/wined3d/view.c
index 3b004a8882b..f3de77022b6 100644
--- a/dlls/wined3d/view.c
+++ b/dlls/wined3d/view.c
@@ -860,9 +860,9 @@ static void shader_resource_view_gl_bind_and_dirtify(struct wined3d_shader_resou
{
struct wined3d_context_gl *context_gl = wined3d_context_gl(context);
- if (context->active_texture < ARRAY_SIZE(context->rev_tex_unit_map))
+ if (context->active_texture < ARRAY_SIZE(context_gl->rev_tex_unit_map))
{
- DWORD active_sampler = context->rev_tex_unit_map[context->active_texture];
+ unsigned int active_sampler = context_gl->rev_tex_unit_map[context->active_texture];
if (active_sampler != WINED3D_UNMAPPED_STAGE)
context_invalidate_state(context, STATE_SAMPLER(active_sampler));
}
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index 26b0894b2e1..48b97d796a8 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -2015,9 +2015,6 @@ struct wined3d_context
GLuint blit_vbo;
- DWORD tex_unit_map[WINED3D_MAX_COMBINED_SAMPLERS];
- DWORD rev_tex_unit_map[MAX_GL_FRAGMENT_SAMPLERS + WINED3D_MAX_VERTEX_SAMPLERS];
-
unsigned int viewport_count;
unsigned int scissor_rect_count;
};
@@ -2036,6 +2033,9 @@ struct wined3d_context_gl
GLenum *texture_type;
+ unsigned int tex_unit_map[WINED3D_MAX_COMBINED_SAMPLERS];
+ unsigned int rev_tex_unit_map[MAX_GL_FRAGMENT_SAMPLERS + WINED3D_MAX_VERTEX_SAMPLERS];
+
/* Extension emulation. */
GLint gl_fog_source;
GLfloat fog_coord_value;
--
2.11.0