rm
This commit is contained in:
parent
aa4d126a42
commit
1e7ed451af
|
@ -1,40 +1,5 @@
|
|||
import benchy, cairo, pixie, pixie/blends, pixie/internal
|
||||
|
||||
when defined(amd64) and not defined(pixieNoSimd):
|
||||
import nimsimd/sse2
|
||||
|
||||
when defined(release):
|
||||
{.push checks: off.}
|
||||
|
||||
proc drawBasic(backdrop, source: Image) =
|
||||
for y in 0 ..< min(backdrop.height, source.height):
|
||||
if isOpaque(source.data, source.dataIndex(0, y), source.width):
|
||||
copyMem(
|
||||
backdrop.data[backdrop.dataIndex(0, y)].addr,
|
||||
source.data[source.dataIndex(0, y)].addr,
|
||||
min(backdrop.width, source.width) * 4
|
||||
)
|
||||
else:
|
||||
var x: int
|
||||
when defined(amd64) and not defined(pixieNoSimd):
|
||||
let vec255 = mm_set1_epi32(cast[int32](uint32.high))
|
||||
for _ in 0 ..< min(backdrop.width, source.width) div 4:
|
||||
let sourceVec = mm_loadu_si128(source.data[source.dataIndex(x, y)].addr)
|
||||
if mm_movemask_epi8(mm_cmpeq_epi8(sourceVec, mm_setzero_si128())) != 0xffff:
|
||||
if (mm_movemask_epi8(mm_cmpeq_epi8(sourceVec, vec255)) and 0x8888) == 0x8888:
|
||||
mm_storeu_si128(backdrop.data[backdrop.dataIndex(x, y)].addr, sourceVec)
|
||||
else:
|
||||
let backdropVec = mm_loadu_si128(backdrop.data[backdrop.dataIndex(x, y)].addr)
|
||||
mm_storeu_si128(
|
||||
backdrop.data[backdrop.dataIndex(x, y)].addr,
|
||||
blendNormalInlineSimd(backdropVec, sourceVec)
|
||||
)
|
||||
x += 4
|
||||
# No scalar for now
|
||||
|
||||
when defined(release):
|
||||
{.pop.}
|
||||
|
||||
block:
|
||||
let
|
||||
backdrop = imageSurfaceCreateFromPng("tests/fileformats/svg/masters/dragon2.png")
|
||||
|
@ -83,19 +48,6 @@ block:
|
|||
|
||||
# tmp.writeFile("tmp2.png")
|
||||
|
||||
block:
|
||||
let
|
||||
backdrop = readImage("tests/fileformats/svg/masters/dragon2.png")
|
||||
source = readImage("tests/fileformats/svg/masters/Ghostscript_Tiger.png")
|
||||
tmp = newImage(1568, 940)
|
||||
|
||||
timeIt "pixie draw basic":
|
||||
# tmp.fill(rgbx(127, 127, 127, 255))
|
||||
tmp.drawBasic(backdrop)
|
||||
tmp.drawBasic(source)
|
||||
|
||||
# tmp.writeFile("tmp2.png")
|
||||
|
||||
block:
|
||||
let
|
||||
backdrop = imageSurfaceCreateFromPng("tests/fileformats/svg/masters/dragon2.png")
|
||||
|
|
Loading…
Reference in a new issue