Henri Verbeet : wined3d: Store fixed-function alpha test support in struct wined3d_d3d_info.

Alexandre Julliard julliard at winehq.org
Tue Aug 6 17:41:58 CDT 2019


Module: wine
Branch: master
Commit: ca6cbb73e1808452b3f2a94bc99560520eeffc4f
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=ca6cbb73e1808452b3f2a94bc99560520eeffc4f

Author: Henri Verbeet <hverbeet at codeweavers.com>
Date:   Tue Aug  6 01:41:17 2019 +0430

wined3d: Store fixed-function alpha test support in struct wined3d_d3d_info.

Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/wined3d/adapter_gl.c      | 1 +
 dlls/wined3d/shader.c          | 2 +-
 dlls/wined3d/utils.c           | 2 +-
 dlls/wined3d/wined3d_private.h | 1 +
 4 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/dlls/wined3d/adapter_gl.c b/dlls/wined3d/adapter_gl.c
index 52fd685..90d9ba6 100644
--- a/dlls/wined3d/adapter_gl.c
+++ b/dlls/wined3d/adapter_gl.c
@@ -3777,6 +3777,7 @@ static BOOL wined3d_adapter_init_gl_caps(struct wined3d_adapter *adapter,
     adapter->vertex_pipe->vp_get_caps(adapter, &vertex_caps);
     d3d_info->xyzrhw = vertex_caps.xyzrhw;
     d3d_info->ffp_generic_attributes = vertex_caps.ffp_generic_attributes;
+    d3d_info->ffp_alpha_test = !!gl_info->supported[WINED3D_GL_LEGACY_CONTEXT];
     d3d_info->limits.ffp_vertex_blend_matrices = vertex_caps.max_vertex_blend_matrices;
     d3d_info->limits.active_light_count = vertex_caps.max_active_lights;
     d3d_info->emulated_flatshading = vertex_caps.emulated_flatshading;
diff --git a/dlls/wined3d/shader.c b/dlls/wined3d/shader.c
index ac3de3d..116dd56 100644
--- a/dlls/wined3d/shader.c
+++ b/dlls/wined3d/shader.c
@@ -4146,7 +4146,7 @@ void find_ps_compile_args(const struct wined3d_state *state, const struct wined3
     args->pointsprite = state->render_states[WINED3D_RS_POINTSPRITEENABLE]
             && state->gl_primitive_type == GL_POINTS;
 
-    if (gl_info->supported[WINED3D_GL_LEGACY_CONTEXT])
+    if (d3d_info->ffp_alpha_test)
         args->alpha_test_func = WINED3D_CMP_ALWAYS - 1;
     else
         args->alpha_test_func = (state->render_states[WINED3D_RS_ALPHATESTENABLE]
diff --git a/dlls/wined3d/utils.c b/dlls/wined3d/utils.c
index 31eca98..1dfb170 100644
--- a/dlls/wined3d/utils.c
+++ b/dlls/wined3d/utils.c
@@ -6226,7 +6226,7 @@ void gen_ffp_frag_op(const struct wined3d_context *context, const struct wined3d
     settings->pointsprite = state->render_states[WINED3D_RS_POINTSPRITEENABLE]
             && state->gl_primitive_type == GL_POINTS;
 
-    if (gl_info->supported[WINED3D_GL_LEGACY_CONTEXT])
+    if (d3d_info->ffp_alpha_test)
         settings->alpha_test_func = WINED3D_CMP_ALWAYS - 1;
     else
         settings->alpha_test_func = (state->render_states[WINED3D_RS_ALPHATESTENABLE]
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index 76a938a..add1f1c 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -202,6 +202,7 @@ struct wined3d_d3d_info
     uint32_t xyzrhw : 1;
     uint32_t emulated_flatshading : 1;
     uint32_t ffp_generic_attributes : 1;
+    uint32_t ffp_alpha_test : 1;
     uint32_t vs_clipping : 1;
     uint32_t shader_color_key : 1;
     uint32_t shader_double_precision : 1;




More information about the wine-cvs mailing list