ShaderGenerator: fixes for combine alpha blending

This commit is contained in:
rdb 2018-01-15 12:20:27 +01:00
parent 6a323081c0
commit 1cada85e6b

View File

@ -1444,7 +1444,7 @@ synthesize_shader(const RenderState *rs, const GeomVertexAnimationSpec &anim) {
text << "\t result.rgb = "; text << "\t result.rgb = ";
text << combine_mode_as_string(tex, combine_rgb, false, i); text << combine_mode_as_string(tex, combine_rgb, false, i);
text << ";\n\t result.a = "; text << ";\n\t result.a = ";
text << combine_mode_as_string(tex, combine_alpha, false, i); text << combine_mode_as_string(tex, combine_alpha, true, i);
text << ";\n"; text << ";\n";
} }
if (tex._flags & ShaderKey::TF_rgb_scale_2) { if (tex._flags & ShaderKey::TF_rgb_scale_2) {
@ -1667,6 +1667,7 @@ combine_source_as_string(const ShaderKey::TextureInfo &info, short num, bool alp
csource << "saturate(1.0f - "; csource << "saturate(1.0f - ";
} }
switch (c_src) { switch (c_src) {
case TextureStage::CS_undefined:
case TextureStage::CS_texture: case TextureStage::CS_texture:
csource << "tex" << texindex; csource << "tex" << texindex;
break; break;
@ -1685,8 +1686,6 @@ combine_source_as_string(const ShaderKey::TextureInfo &info, short num, bool alp
case TextureStage::CS_last_saved_result: case TextureStage::CS_last_saved_result:
csource << "last_saved_result"; csource << "last_saved_result";
break; break;
case TextureStage::CS_undefined:
break;
} }
if (c_op == TextureStage::CO_one_minus_src_color || if (c_op == TextureStage::CO_one_minus_src_color ||
c_op == TextureStage::CO_one_minus_src_alpha) { c_op == TextureStage::CO_one_minus_src_alpha) {