[PATCH 1/4] wined3d: Use lower 8 bits only from _ALPHAREF state.
Paul Gofman
gofmanp at gmail.com
Tue Feb 5 09:57:25 CST 2019
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=38138
Signed-off-by: Paul Gofman <gofmanp at gmail.com>
---
dlls/wined3d/arb_program_shader.c | 2 +-
dlls/wined3d/glsl_shader.c | 4 ++--
dlls/wined3d/state.c | 2 +-
dlls/wined3d/wined3d_private.h | 5 +++++
4 files changed, 9 insertions(+), 4 deletions(-)
diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader.c
index 4dafb3442e..37ec7e9093 100644
--- a/dlls/wined3d/arb_program_shader.c
+++ b/dlls/wined3d/arb_program_shader.c
@@ -5945,7 +5945,7 @@ static void alpha_test_arbfp(struct wined3d_context *context, const struct wined
return;
}
- ref = ((float)state->render_states[WINED3D_RS_ALPHAREF]) / 255.0f;
+ ref = wined3d_alpha_ref(state);
glParm = wined3d_gl_compare_func(state->render_states[WINED3D_RS_ALPHAFUNC]);
if (glParm)
diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c
index 714ab0249e..70b4458977 100644
--- a/dlls/wined3d/glsl_shader.c
+++ b/dlls/wined3d/glsl_shader.c
@@ -2149,7 +2149,7 @@ static void shader_glsl_load_constants(void *shader_priv, struct wined3d_context
if (update_mask & WINED3D_SHADER_CONST_PS_ALPHA_TEST)
{
- float ref = state->render_states[WINED3D_RS_ALPHAREF] / 255.0f;
+ float ref = wined3d_alpha_ref(state);
GL_EXTCALL(glUniform1f(prog->ps.alpha_test_ref_location, ref));
checkGLcall("alpha test emulation uniform");
@@ -12874,7 +12874,7 @@ static void glsl_fragment_pipe_alpha_test_func(struct wined3d_context *context,
{
const struct wined3d_gl_info *gl_info = context->gl_info;
GLint func = wined3d_gl_compare_func(state->render_states[WINED3D_RS_ALPHAFUNC]);
- float ref = state->render_states[WINED3D_RS_ALPHAREF] / 255.0f;
+ float ref = wined3d_alpha_ref(state);
if (func)
{
diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c
index c62cd92c01..a80009ca5a 100644
--- a/dlls/wined3d/state.c
+++ b/dlls/wined3d/state.c
@@ -681,7 +681,7 @@ void state_alpha_test(struct wined3d_context *context, const struct wined3d_stat
}
else
{
- ref = ((float)state->render_states[WINED3D_RS_ALPHAREF]) / 255.0f;
+ ref = wined3d_alpha_ref(state);
glParm = wined3d_gl_compare_func(state->render_states[WINED3D_RS_ALPHAFUNC]);
}
if (glParm)
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index 825843b0d3..200e36184f 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -3112,6 +3112,11 @@ static inline BOOL isStateDirty(const struct wined3d_context *context, DWORD sta
return context->isStateDirty[idx] & (1u << shift);
}
+static inline float wined3d_alpha_ref(const struct wined3d_state *state)
+{
+ return (state->render_states[WINED3D_RS_ALPHAREF] & 0xff) / 255.0f;
+}
+
const char *wined3d_debug_resource_access(DWORD access) DECLSPEC_HIDDEN;
const char *wined3d_debug_bind_flags(DWORD bind_flags) DECLSPEC_HIDDEN;
const char *wined3d_debug_view_desc(const struct wined3d_view_desc *d,
--
2.20.1
More information about the wine-devel
mailing list