Jason Green : wined3d: Allow drawPrim to create and use the GLSL program.
Module: wine Branch: refs/heads/master Commit: d5d4568450c2ca087122a06e39814af7ca8d6d14 URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=d5d4568450c2ca087122a06e... Author: Jason Green <jave27(a)gmail.com> Date: Fri Jun 9 03:37:45 2006 -0400 wined3d: Allow drawPrim to create and use the GLSL program. --- dlls/wined3d/drawprim.c | 15 ++++++++++++++- dlls/wined3d/wined3d_private.h | 3 +++ 2 files changed, 17 insertions(+), 1 deletions(-) diff --git a/dlls/wined3d/drawprim.c b/dlls/wined3d/drawprim.c index 853518f..f12e046 100644 --- a/dlls/wined3d/drawprim.c +++ b/dlls/wined3d/drawprim.c @@ -1920,7 +1920,20 @@ #endif TRACE("Loaded arrays\n"); - /* TODO: Bind the correct GLSL shader program here. */ + /* Bind the correct GLSL shader program based on the currently set vertex & pixel shaders. */ + if (wined3d_settings.shader_mode == SHADER_GLSL) { + GLhandleARB programId; + + set_glsl_shader_program(iface); + programId = This->stateBlock->shaderPrgId; + + if (programId != 0) { + /* Start using this program ID */ + TRACE_(d3d_shader)("Using GLSL program %u\n", programId); + GL_EXTCALL(glUseProgramObjectARB(programId)); + checkGLcall("glUseProgramObjectARB"); + } + } if (useVertexShaderFunction) { diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h index 31afe74..f1ec8bc 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -1317,6 +1317,9 @@ extern const SHADER_OPCODE* shader_get_o /* ARB shader program Prototypes */ extern void shader_hw_def(SHADER_OPCODE_ARG *arg); +/* GLSL helper programs */ +extern void set_glsl_shader_program(IWineD3DDevice *iface); + /** The following translate DirectX pixel/vertex shader opcodes to GLSL lines */ extern void shader_glsl_map2gl(SHADER_OPCODE_ARG* arg); extern void shader_glsl_arith(SHADER_OPCODE_ARG* arg);
participants (1)
-
Alexandre Julliard