f
This commit is contained in:
parent
f54d46bee0
commit
1821c8ea93
1 changed files with 0 additions and 4 deletions
|
@ -412,18 +412,14 @@ proc applyOpacity*(target: Image | Mask, opacity: float32) {.raises: [].} =
|
||||||
let index = i
|
let index = i
|
||||||
|
|
||||||
let values = mm_loadu_si128(target.data[index].addr)
|
let values = mm_loadu_si128(target.data[index].addr)
|
||||||
|
|
||||||
if mm_movemask_epi8(mm_cmpeq_epi16(values, zeroVec)) != 0xffff:
|
if mm_movemask_epi8(mm_cmpeq_epi16(values, zeroVec)) != 0xffff:
|
||||||
var
|
var
|
||||||
valuesEven = mm_slli_epi16(values, 8)
|
valuesEven = mm_slli_epi16(values, 8)
|
||||||
valuesOdd = mm_and_si128(values, oddMask)
|
valuesOdd = mm_and_si128(values, oddMask)
|
||||||
|
|
||||||
valuesEven = mm_mulhi_epu16(valuesEven, opacityVec)
|
valuesEven = mm_mulhi_epu16(valuesEven, opacityVec)
|
||||||
valuesOdd = mm_mulhi_epu16(valuesOdd, opacityVec)
|
valuesOdd = mm_mulhi_epu16(valuesOdd, opacityVec)
|
||||||
|
|
||||||
valuesEven = mm_srli_epi16(mm_mulhi_epu16(valuesEven, div255), 7)
|
valuesEven = mm_srli_epi16(mm_mulhi_epu16(valuesEven, div255), 7)
|
||||||
valuesOdd = mm_srli_epi16(mm_mulhi_epu16(valuesOdd, div255), 7)
|
valuesOdd = mm_srli_epi16(mm_mulhi_epu16(valuesOdd, div255), 7)
|
||||||
|
|
||||||
mm_storeu_si128(
|
mm_storeu_si128(
|
||||||
target.data[index].addr,
|
target.data[index].addr,
|
||||||
mm_or_si128(valuesEven, mm_slli_epi16(valuesOdd, 8))
|
mm_or_si128(valuesEven, mm_slli_epi16(valuesOdd, 8))
|
||||||
|
|
Loading…
Reference in a new issue