From d244c28d376620fb615641febac0bc29ffb7b91c Mon Sep 17 00:00:00 2001 From: Tobias Jakobi Date: Sat, 18 Apr 2009 17:36:15 +0200 Subject: [wined3d] let find_gl_vshader return a pointer to vs_compiled_shader --- dlls/wined3d/arb_program_shader.c | 2 +- dlls/wined3d/glsl_shader.c | 2 +- dlls/wined3d/vertexshader.c | 6 +++--- dlls/wined3d/wined3d_private.h | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader.c index 3b9280c..f0285a5 100644 --- a/dlls/wined3d/arb_program_shader.c +++ b/dlls/wined3d/arb_program_shader.c @@ -1910,7 +1910,7 @@ static void shader_arb_select(IWineD3DDevice *iface, BOOL usePS, BOOL useVS) { TRACE("Using vertex shader\n"); find_vs_compile_args((IWineD3DVertexShaderImpl *) This->stateBlock->vertexShader, This->stateBlock, &compile_args); - priv->current_vprogram_id = find_gl_vshader((IWineD3DVertexShaderImpl *) This->stateBlock->vertexShader, &compile_args); + priv->current_vprogram_id = find_gl_vshader((IWineD3DVertexShaderImpl *) This->stateBlock->vertexShader, &compile_args)->prgId; /* Bind the vertex program */ GL_EXTCALL(glBindProgramARB(GL_VERTEX_PROGRAM_ARB, priv->current_vprogram_id)); diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c index d5a1b80..2be91d6 100644 --- a/dlls/wined3d/glsl_shader.c +++ b/dlls/wined3d/glsl_shader.c @@ -3553,7 +3553,7 @@ static void set_glsl_shader_program(IWineD3DDevice *iface, BOOL use_ps, BOOL use priv->glsl_program = entry; if(use_vs) { - vshader_id = find_gl_vshader((IWineD3DVertexShaderImpl *) vshader, &vs_compile_args); + vshader_id = find_gl_vshader((IWineD3DVertexShaderImpl *) vshader, &vs_compile_args)->prgId; } else { vshader_id = 0; } diff --git a/dlls/wined3d/vertexshader.c b/dlls/wined3d/vertexshader.c index fdd8cd8..5762458 100644 --- a/dlls/wined3d/vertexshader.c +++ b/dlls/wined3d/vertexshader.c @@ -445,7 +445,7 @@ static inline BOOL vs_args_equal(const struct vs_compile_args *stored, const str return stored->fog_src == new->fog_src; } -GLuint find_gl_vshader(IWineD3DVertexShaderImpl *shader, const struct vs_compile_args *args) +struct vs_compiled_shader* find_gl_vshader(IWineD3DVertexShaderImpl *shader, const struct vs_compile_args *args) { UINT i; DWORD new_size = shader->shader_array_size; @@ -458,7 +458,7 @@ GLuint find_gl_vshader(IWineD3DVertexShaderImpl *shader, const struct vs_compile */ for(i = 0; i < shader->num_gl_shaders; i++) { if(vs_args_equal(&shader->gl_shaders[i].args, args, use_map)) { - return shader->gl_shaders[i].prgId; + return &shader->gl_shaders[i]; } } @@ -485,5 +485,5 @@ GLuint find_gl_vshader(IWineD3DVertexShaderImpl *shader, const struct vs_compile shader->gl_shaders[shader->num_gl_shaders].args = *args; shader->gl_shaders[shader->num_gl_shaders].prgId = vertexshader_compile(shader, args); - return shader->gl_shaders[shader->num_gl_shaders++].prgId; + return &shader->gl_shaders[shader->num_gl_shaders++]; } diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h index 6e3dd9c..5e56091 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -2459,7 +2459,7 @@ extern const SHADER_OPCODE IWineD3DVertexShaderImpl_shader_ins[]; extern const IWineD3DVertexShaderVtbl IWineD3DVertexShader_Vtbl; void find_vs_compile_args(IWineD3DVertexShaderImpl *shader, IWineD3DStateBlockImpl *stateblock, struct vs_compile_args *args); -GLuint find_gl_vshader(IWineD3DVertexShaderImpl *shader, const struct vs_compile_args *args); +struct vs_compiled_shader* find_gl_vshader(IWineD3DVertexShaderImpl *shader, const struct vs_compile_args *args); /***************************************************************************** * IDirect3DPixelShader implementation structure -- 1.6.0.6