[PATCH 3/6] wined3d: Store a gl_info pointer in struct shader_arb_ctx_priv.
Henri Verbeet
hverbeet at codeweavers.com
Fri Jan 24 10:02:05 CST 2020
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
---
dlls/wined3d/arb_program_shader.c | 7 +++++--
dlls/wined3d/shader.c | 1 -
dlls/wined3d/wined3d_private.h | 2 +-
3 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader.c
index 9d98c79ce51..14ca883e761 100644
--- a/dlls/wined3d/arb_program_shader.c
+++ b/dlls/wined3d/arb_program_shader.c
@@ -237,6 +237,7 @@ struct shader_arb_ctx_priv
NV3
} target_version;
+ const struct wined3d_gl_info *gl_info;
const struct arb_vs_compile_args *cur_vs_args;
const struct arb_ps_compile_args *cur_ps_args;
const struct arb_ps_compiled_shader *compiled_fprog;
@@ -1438,7 +1439,7 @@ static void shader_hw_sample(const struct wined3d_shader_instruction *ins, DWORD
case WINED3D_SHADER_RESOURCE_TEXTURE_2D:
if (pshader && priv->cur_ps_args->super.np2_fixup & (1u << sampler_idx)
- && ins->ctx->gl_info->supported[ARB_TEXTURE_RECTANGLE])
+ && priv->gl_info->supported[ARB_TEXTURE_RECTANGLE])
tex_type = "RECT";
else
tex_type = "2D";
@@ -3301,7 +3302,7 @@ static void shader_hw_ret(const struct wined3d_shader_instruction *ins)
if(vshader)
{
if (priv->in_main_func) vshader_add_footer(priv, shader->backend_data,
- priv->cur_vs_args, ins->ctx->reg_maps, ins->ctx->gl_info, buffer);
+ priv->cur_vs_args, ins->ctx->reg_maps, priv->gl_info, buffer);
}
shader_addline(buffer, "RET;\n");
@@ -3555,6 +3556,7 @@ static GLuint shader_arb_generate_pshader(const struct wined3d_shader *shader,
/* Create the hw ARB shader */
memset(&priv_ctx, 0, sizeof(priv_ctx));
+ priv_ctx.gl_info = gl_info;
priv_ctx.cur_ps_args = args;
priv_ctx.compiled_fprog = compiled;
priv_ctx.cur_np2fixup_info = &compiled->np2fixup_info;
@@ -4113,6 +4115,7 @@ static GLuint shader_arb_generate_vshader(const struct wined3d_shader *shader,
unsigned int i;
memset(&priv_ctx, 0, sizeof(priv_ctx));
+ priv_ctx.gl_info = gl_info;
priv_ctx.cur_vs_args = args;
list_init(&priv_ctx.control_frames);
init_output_registers(shader, ps_input_sig, &priv_ctx, compiled);
diff --git a/dlls/wined3d/shader.c b/dlls/wined3d/shader.c
index 3b9a96abc69..757631a73ef 100644
--- a/dlls/wined3d/shader.c
+++ b/dlls/wined3d/shader.c
@@ -2624,7 +2624,6 @@ HRESULT shader_generate_code(const struct wined3d_shader *shader, struct wined3d
state.in_subroutine = FALSE;
ctx.shader = shader;
- ctx.gl_info = &device->adapter->gl_info;
ctx.reg_maps = reg_maps;
ctx.buffer = buffer;
ctx.tex_mx = &tex_mx;
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index 583d970eca8..934a422ede1 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -79,6 +79,7 @@
struct wined3d_fragment_pipe_ops;
struct wined3d_adapter;
struct wined3d_context;
+struct wined3d_gl_info;
struct wined3d_state;
struct wined3d_swapchain_gl;
struct wined3d_texture_gl;
@@ -1084,7 +1085,6 @@ struct wined3d_shader_parser_state
struct wined3d_shader_context
{
const struct wined3d_shader *shader;
- const struct wined3d_gl_info *gl_info;
const struct wined3d_shader_reg_maps *reg_maps;
struct wined3d_string_buffer *buffer;
struct wined3d_shader_tex_mx *tex_mx;
--
2.11.0
More information about the wine-devel
mailing list