From 8656713366ecc5ca5c64262b44bd95d4c9d6756b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20D=C3=B6singer?= Date: Thu, 30 Aug 2007 22:59:14 +0200 Subject: [PATCH] wined3d: Implement texldb. --- dlls/wined3d/glsl_shader.c | 13 +++++++++++-- dlls/wined3d/wined3d_private_types.h | 1 + 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c index 6dfa706fb67..6f2f10a56db 100644 --- a/dlls/wined3d/glsl_shader.c +++ b/dlls/wined3d/glsl_shader.c @@ -1605,8 +1605,17 @@ void pshader_glsl_tex(SHADER_OPCODE_ARG* arg) { } else { glsl_src_param_t coord_param; shader_glsl_add_src_param(arg, arg->src[0], arg->src_addr[0], mask, &coord_param); - shader_addline(arg->buffer, "%s(Psampler%u, %s)%s);\n", - sample_function.name, sampler_idx, coord_param.param_str, dst_swizzle); + if(arg->opcode_token & WINED3DSI_TEXLD_BIAS) { + glsl_src_param_t bias; + shader_glsl_add_src_param(arg, arg->src[0], arg->src_addr[0], WINED3DSP_WRITEMASK_3, &bias); + + shader_addline(arg->buffer, "%s(Psampler%u, %s, %s)%s);\n", + sample_function.name, sampler_idx, coord_param.param_str, + bias.param_str, dst_swizzle); + } else { + shader_addline(arg->buffer, "%s(Psampler%u, %s)%s);\n", + sample_function.name, sampler_idx, coord_param.param_str, dst_swizzle); + } } } diff --git a/dlls/wined3d/wined3d_private_types.h b/dlls/wined3d/wined3d_private_types.h index 3550910101e..8a7750f8ecd 100644 --- a/dlls/wined3d/wined3d_private_types.h +++ b/dlls/wined3d/wined3d_private_types.h @@ -293,6 +293,7 @@ typedef enum _WINED3DSHADER_INSTRUCTION_OPCODE_TYPE { /* Undocumented opcode control to identify projective texture lookups in ps 2.0 and later */ #define WINED3DSI_TEXLD_PROJECT 0x00010000 +#define WINED3DSI_TEXLD_BIAS 0x00020000 /** Shader version tokens, and shader end tokens **/