From: Elizabeth Figura zfigura@codeweavers.com
--- dlls/wined3d/ffp_hlsl.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/dlls/wined3d/ffp_hlsl.c b/dlls/wined3d/ffp_hlsl.c index d8e2c751a4d..a0d848a9c8f 100644 --- a/dlls/wined3d/ffp_hlsl.c +++ b/dlls/wined3d/ffp_hlsl.c @@ -619,9 +619,6 @@ static bool ffp_hlsl_generate_pixel_shader(const struct ffp_frag_settings *setti uint8_t tex_map = 0; unsigned int i;
- if (settings->color_key_enabled) - FIXME("Ignoring color key.\n"); - /* Find out which textures are read. */ for (i = 0; i < WINED3D_MAX_FFP_TEXTURES; ++i) { @@ -840,6 +837,12 @@ static bool ffp_hlsl_generate_pixel_shader(const struct ffp_frag_settings *setti } }
+ if (settings->color_key_enabled) + { + shader_addline(buffer, " if (all(tex0 >= c.color_key[0]) && all(tex0 < c.color_key[1]))\n"); + shader_addline(buffer, " discard;\n"); + } + shader_addline(buffer, " ret = i.diffuse;\n");
for (i = 0; i < WINED3D_MAX_FFP_TEXTURES; ++i)