import pixie, chroma, vmath, fidget/opengl/perf timeIt "spread": var tmp = 0 var spread: Image for i in 0 ..< 100: var a = newImageFill(100, 100, rgba(0, 0, 0, 0)) var b = newImageFill(50, 50, rgba(0, 0, 0, 255)) a.draw(b, vec2(25, 25)) spread = a.spread(spread = 10) b = newImageFill(50, 50, rgba(255, 255, 255, 255)) spread.draw(b, vec2(25, 25)) tmp += spread.width * spread.height spread.writeFile("tests/images/spread1.png") echo tmp timeIt "blur": var tmp = 0 var blur: Image for i in 0 ..< 100: var a = newImageFill(100, 100, rgba(0, 0, 0, 0)) var b = newImageFill(50, 50, rgba(255, 255, 255, 255)) a.draw(b, vec2(25, 25)) blur = a.blur(radius = 10) b = newImageFill(50, 50, rgba(255, 255, 255, 255)) blur.draw(b, vec2(25, 25)) tmp += blur.width * blur.height blur.writeFile("tests/images/blur1.png") echo tmp timeIt "shadow": var tmp = 0 var shadow: Image for i in 0 ..< 100: var a = newImageFill(100, 100, rgba(0, 0, 0, 0)) var b = newImageFill(50, 50, rgba(0, 0, 0, 255)) a.draw(b, vec2(25, 25)) shadow = a.shadow( offset = vec2(0, 0), spread = 10, blur = 10, color = rgba(0, 0, 0, 255)) b = newImageFill(50, 50, rgba(255, 255, 255, 255)) shadow.draw(b, vec2(25, 25)) tmp += shadow.width * shadow.height shadow.writeFile("tests/images/shadow1.png") echo tmp # import print # timeIt "Shadow Stops": # var tmp = 0 # var shadow: Image # for i in 0 ..< 1: # var a = newImageFill(10, 200, rgba(0, 0, 0, 0)) # var b = newImageFill(50, 50, rgba(0, 0, 0, 255)) # a.draw(b, vec2(-25, -25)) # for spread in 0 .. 0: # let spread = spread.float # for blur in 0 .. 10: # let blur = blur.float # print spread, blur # shadow = a.shadow( # offset = vec2(0, 0), spread = spread, blur = blur, color = rgba(0, 0, 0, 255)) # for y in 25 ..< (25 + spread + blur).int: # echo y - 25, ":", shadow[5, y].a # b = newImageFill(50, 50, rgba(255, 255, 255, 255)) # shadow.draw(b, vec2(-25, -25)) # tmp += shadow.width * shadow.height # shadow.writeFile("tests/images/shadowStops.png") # echo tmp