simpler
This commit is contained in:
parent
4870c8f283
commit
b302c9b38e
1 changed files with 2 additions and 6 deletions
|
@ -415,22 +415,18 @@ proc applyOpacity*(target: Image | Mask, opacity: float32) {.raises: [].} =
|
|||
|
||||
if mm_movemask_epi8(mm_cmpeq_epi16(values, zeroVec)) != 0xffff:
|
||||
var
|
||||
valuesEven = mm_slli_epi16(mm_andnot_si128(oddMask, values), 8)
|
||||
valuesEven = mm_slli_epi16(values, 8)
|
||||
valuesOdd = mm_and_si128(values, oddMask)
|
||||
|
||||
# values * opacity
|
||||
valuesEven = mm_mulhi_epu16(valuesEven, opacityVec)
|
||||
valuesOdd = mm_mulhi_epu16(valuesOdd, opacityVec)
|
||||
|
||||
# div 255
|
||||
valuesEven = mm_srli_epi16(mm_mulhi_epu16(valuesEven, div255), 7)
|
||||
valuesOdd = mm_srli_epi16(mm_mulhi_epu16(valuesOdd, div255), 7)
|
||||
|
||||
valuesOdd = mm_slli_epi16(valuesOdd, 8)
|
||||
|
||||
mm_storeu_si128(
|
||||
target.data[index].addr,
|
||||
mm_or_si128(valuesEven, valuesOdd)
|
||||
mm_or_si128(valuesEven, mm_slli_epi16(valuesOdd, 8))
|
||||
)
|
||||
|
||||
i += 16
|
||||
|
|
Loading…
Reference in a new issue