mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-12 07:34:36 +00:00
- Disabled alpha-masking textures for now, since they do not yet work. (needs texman fix)
This commit is contained in:
parent
9b40aa9605
commit
e7a1a59053
2 changed files with 18 additions and 0 deletions
|
@ -410,9 +410,11 @@ namespace swrenderer
|
|||
}
|
||||
else if (BlendT::Mode == (int)SpanBlendModes::Masked)
|
||||
{
|
||||
#if 0 // leaving this in for alpha texture support (todo: fix in texture manager later?)
|
||||
__m128i alpha = _mm_shufflelo_epi16(fgcolor, _MM_SHUFFLE(3, 3, 3, 3));
|
||||
alpha = _mm_shufflehi_epi16(alpha, _MM_SHUFFLE(3, 3, 3, 3));
|
||||
alpha = _mm_add_epi16(alpha, _mm_srli_epi16(alpha, 7)); // 255 -> 256
|
||||
|
||||
__m128i inv_alpha = _mm_sub_epi16(_mm_set1_epi16(256), alpha);
|
||||
|
||||
fgcolor = _mm_mullo_epi16(fgcolor, alpha);
|
||||
|
@ -421,6 +423,13 @@ namespace swrenderer
|
|||
outcolor = _mm_packus_epi16(outcolor, _mm_setzero_si128());
|
||||
outcolor = _mm_or_si128(outcolor, _mm_set1_epi32(0xff000000));
|
||||
return outcolor;
|
||||
#endif
|
||||
__m128i mask = _mm_cmpeq_epi32(_mm_packus_epi16(fgcolor, _mm_setzero_si128()), _mm_setzero_si128());
|
||||
mask = _mm_unpacklo_epi8(mask, _mm_setzero_si128());
|
||||
__m128i outcolor = _mm_or_si128(_mm_and_si128(mask, bgcolor), _mm_andnot_si128(mask, fgcolor));
|
||||
outcolor = _mm_packus_epi16(outcolor, _mm_setzero_si128());
|
||||
outcolor = _mm_or_si128(outcolor, _mm_set1_epi32(0xff000000));
|
||||
return outcolor;
|
||||
}
|
||||
else if (BlendT::Mode == (int)SpanBlendModes::Translucent)
|
||||
{
|
||||
|
|
|
@ -332,9 +332,11 @@ namespace swrenderer
|
|||
}
|
||||
else if (BlendT::Mode == (int)WallBlendModes::Masked)
|
||||
{
|
||||
#if 0 // leaving this in for alpha texture support (todo: fix in texture manager later?)
|
||||
__m128i alpha = _mm_shufflelo_epi16(fgcolor, _MM_SHUFFLE(3, 3, 3, 3));
|
||||
alpha = _mm_shufflehi_epi16(alpha, _MM_SHUFFLE(3, 3, 3, 3));
|
||||
alpha = _mm_add_epi16(alpha, _mm_srli_epi16(alpha, 7)); // 255 -> 256
|
||||
|
||||
__m128i inv_alpha = _mm_sub_epi16(_mm_set1_epi16(256), alpha);
|
||||
|
||||
fgcolor = _mm_mullo_epi16(fgcolor, alpha);
|
||||
|
@ -343,6 +345,13 @@ namespace swrenderer
|
|||
outcolor = _mm_packus_epi16(outcolor, _mm_setzero_si128());
|
||||
outcolor = _mm_or_si128(outcolor, _mm_set1_epi32(0xff000000));
|
||||
return outcolor;
|
||||
#endif
|
||||
__m128i mask = _mm_cmpeq_epi32(_mm_packus_epi16(fgcolor, _mm_setzero_si128()), _mm_setzero_si128());
|
||||
mask = _mm_unpacklo_epi8(mask, _mm_setzero_si128());
|
||||
__m128i outcolor = _mm_or_si128(_mm_and_si128(mask, bgcolor), _mm_andnot_si128(mask, fgcolor));
|
||||
outcolor = _mm_packus_epi16(outcolor, _mm_setzero_si128());
|
||||
outcolor = _mm_or_si128(outcolor, _mm_set1_epi32(0xff000000));
|
||||
return outcolor;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue