Commit graph

570 commits

Author SHA1 Message Date
Ryan Oldenburg 014413b627 triple blend when needed 2021-01-29 21:48:52 -06:00
Ryan Oldenburg c65acc6cd7 f 2021-01-29 14:10:36 -06:00
Ryan Oldenburg 74fcf2a9f2 working int impl 2021-01-29 14:07:26 -06:00
Ryan Oldenburg a16315a9cf for non simd for now 2021-01-29 13:00:35 -06:00
Ryan Oldenburg 052e114db1 premultiplied blends for most 2021-01-28 23:45:44 -06:00
Ryan Oldenburg 8aab927127 unused 2021-01-28 22:46:12 -06:00
Ryan Oldenburg 01fd4eed6d actually much faster 2021-01-28 22:36:38 -06:00
Ryan Oldenburg 9ea66864b1 consistent 2021-01-28 22:30:24 -06:00
Ryan Oldenburg 03dcd05969 rename to blender 2021-01-28 22:28:05 -06:00
Ryan Oldenburg dad7440e04 just move 2021-01-28 22:26:56 -06:00
Ryan Oldenburg 718a8707f3 f 2021-01-28 20:59:37 -06:00
Ryan Oldenburg bd18a9868a simpler 2021-01-28 20:55:47 -06:00
Ryan Oldenburg cb14a09367 public 2021-01-28 20:25:24 -06:00
Ryan Oldenburg 35ad210ec5 tiger 20% faster 2021-01-28 17:00:30 -06:00
Ryan Oldenburg c0ac9fd2f8 not public, maybe becomes part of masks.nim 2021-01-27 17:16:43 -06:00
Ryan Oldenburg c37dcd4a56 dont mutate shadow mask param 2021-01-27 17:13:30 -06:00
Ryan Oldenburg fe1cfc41a6 resize remove +1 2021-01-27 16:45:56 -06:00
Ryan Oldenburg a6103ac444 more clear docs i think + bufix 2021-01-27 16:43:33 -06:00
Ryan Oldenburg 2cd3c35fc1 bit faster 2021-01-27 15:15:51 -06:00
Ryan Oldenburg bb7ec44fce store winding as int directly 2021-01-27 03:47:03 -06:00
Ryan Oldenburg eb360887ab repeat into proc 2021-01-27 03:16:27 -06:00
Ryan Oldenburg c4abba5d8a - assert, + exception 2021-01-27 03:11:37 -06:00
Ryan Oldenburg 8668f355f1 little speedups 2021-01-27 03:07:17 -06:00
Ryan Oldenburg e85ab1f3fe f 2021-01-27 02:49:49 -06:00
Ryan Oldenburg 4fad39c5bd rm forward declare 2021-01-27 02:45:07 -06:00
Ryan Oldenburg c8b78800a6 f 2021-01-26 19:54:49 -06:00
Ryan Oldenburg 7389c9257b better name 2021-01-26 18:23:15 -06:00
Ryan Oldenburg 1af7f5ca7c simpler 2021-01-26 18:23:15 -06:00
Ryan Oldenburg f49564b167 corrected 2021-01-26 17:14:21 -06:00
Ryan Oldenburg b232a3a8c2 simpler 2021-01-26 17:03:24 -06:00
Ryan Oldenburg 4cdb9db0f6 2x faster lol 2021-01-26 16:55:33 -06:00
Ryan Oldenburg be6bebf553 a few little things + uint8 coverage 2021-01-26 16:34:07 -06:00
Ryan Oldenburg e1c98b0822 small 2021-01-26 16:31:24 -06:00
Ryan Oldenburg 65afc67792 tests stuff 2021-01-25 11:49:29 -06:00
Ryan Oldenburg a63bc4d1be decodeSvg returns straight alpha 2021-01-25 11:17:34 -06:00
Ryan Oldenburg 2c7694896f paths.nim expects and returns premultiplied alpha 2021-01-25 11:08:32 -06:00
Ryan Oldenburg 584d48c2ee 0.0.20 seq[seq[Vec2]] 2021-01-25 10:24:23 -06:00
Ryan Oldenburg b25daa0de7 remove break 2021-01-25 10:15:42 -06:00
Ryan Oldenburg 09cd7f959d 0.0.19 new scanline+fill 2021-01-24 23:34:31 -06:00
Ryan Oldenburg 505434e04e start+stop bounds = faster fill 2021-01-24 22:31:56 -06:00
Ryan Oldenburg 0cb7b5ea3d 0.0.18 more paths.nim stuff 2021-01-24 22:02:45 -06:00
Ryan Oldenburg f0f2e5b4c6 0.0.17 paths stuff 2021-01-24 20:49:57 -06:00
Ryan Oldenburg d73aff17ee path not ref 2021-01-24 20:15:11 -06:00
Ryan Oldenburg e95f78038d small 2021-01-24 19:53:21 -06:00
Ryan Oldenburg 9e834ce8e4 explicit names instead of alphy shorthand 2021-01-24 18:40:26 -06:00
Ryan Oldenburg 45fe8bd9ea integer lerp, integer premultiply and straighten alpha 2021-01-24 18:20:46 -06:00
Ryan Oldenburg f6864b109e 2x faster convert to straight alpha 2021-01-24 16:20:10 -06:00
Ryan Oldenburg 60280520b6 move 2021-01-24 15:31:43 -06:00
Ryan Oldenburg aec3d91109 pixieNoSimd 2021-01-24 15:26:53 -06:00
Ryan Oldenburg db0ee90fb2 polygon, validate commands 2021-01-24 15:21:45 -06:00
Ryan Oldenburg 40dfcfcde1 0.0.16 quadraticCurveTo, transform 2021-01-23 22:12:00 -06:00
Ryan Oldenburg 95471f36a7 better error msg 2021-01-23 20:12:58 -06:00
Ryan Oldenburg 3f3db2fcec remove masks.nim for now 2021-01-23 20:12:58 -06:00
treeform 23e51968f9
Merge pull request #68 from guzba/master
faster subImage, a bit more
2021-01-23 16:20:33 -08:00
treeform 962c31671b
Merge pull request #66 from Anuken/patch-3
Workaround for gc:arc SIGSEGV in png.nim
2021-01-23 13:26:43 -08:00
Ryan Oldenburg 007b495538 faster subImage, a bit more 2021-01-23 14:17:34 -06:00
Ryan Oldenburg b3bf8fc356 0.0.15, gate simd behind amd64 2021-01-23 11:39:26 -06:00
Anuken bdfd175e02
Workaround for gc:arc SIGSEGV 2021-01-23 12:30:59 -05:00
Ryan Oldenburg 11164fa236 small things 2021-01-22 23:33:05 -06:00
Ryan Oldenburg 6b9beedca6 fill, etc 2021-01-22 21:18:29 -06:00
Ryan Oldenburg 52eb2d2037 0.0.14 2021-01-22 18:35:30 -06:00
Ryan Oldenburg b41965ce3c 0.0.13 revert quad, unaligned simd fill for now 2021-01-22 17:27:20 -06:00
Ryan Oldenburg e676121ae3 arc small stuff 2021-01-22 10:31:04 -06:00
Ryan Oldenburg 9aafd87def like quad, cubic 2021-01-22 08:56:18 -06:00
Ryan Oldenburg 7271cdfe80 arc discretize 2021-01-22 08:47:54 -06:00
Ryan Oldenburg cb621c2532 arc stuff, quad discretize 2021-01-22 08:42:28 -06:00
Ryan Oldenburg ddabf803a3 pixieUseStb 2021-01-21 23:34:34 -06:00
Ryan Oldenburg 773036a3ba add -d:useStb 2021-01-21 19:09:27 -06:00
Ryan Oldenburg 47cb962e23 simd toAlphy 2021-01-19 19:01:47 -06:00
Ryan Oldenburg 3eef65374d bugfix + test 2021-01-19 18:51:12 -06:00
Ryan Oldenburg 882ae0127c fix tiger lip issue 2021-01-18 00:48:21 -06:00
Ryan Oldenburg ce938fa92a skip horizontal, faster 2021-01-17 22:07:05 -06:00
Ryan Oldenburg 74169e4c15 bounds 2021-01-16 19:01:06 -06:00
Ryan Oldenburg 3908825db8
cubic curve compute (#50)
* cubic curve compute

* curve -> segments with error budget

* dynamic precision on curves
2021-01-15 18:22:51 -08:00
Ryan Oldenburg 444fb18355
use line intersection (#49) 2021-01-11 20:24:47 -08:00
Ryan Oldenburg b60f262587 empty png encode error 2021-01-11 11:46:06 -06:00
Ryan Oldenburg ce7507cd6c fast fill, remove benchmark weirdness 2021-01-06 14:18:47 -06:00
Ryan Oldenburg 3f3d645778 faster, no start 2021-01-02 22:55:21 -06:00
Ryan Oldenburg e2b8b50b18 small stuff 2021-01-02 22:28:54 -06:00
treeform 5a33f0a3a2 Don't return a new image when filling paths. 2021-01-02 16:19:19 -08:00
Ryan Oldenburg e5cc9ba1b5 0.0.9 dont close already closed paths 2020-12-29 18:11:58 -06:00
Ryan Oldenburg 1b4095afe1 0.0.8 export for typography 2020-12-29 17:18:00 -06:00
Ryan Oldenburg 6f37f04ba4 support ellipse 2020-12-20 12:18:02 -06:00
Ryan Oldenburg 10a10d3f27 svg more basic shapes, more transforms 2020-12-19 22:01:34 -06:00
Ryan Oldenburg 7cf59c85fe svg circle 2020-12-19 20:50:40 -06:00
Ryan Oldenburg 79189a473e svg decode more support 2020-12-19 18:03:40 -06:00
Ryan Oldenburg 4d14870150 case back 2020-12-14 13:11:14 -06:00
Ryan Oldenburg 6e55ecc7d4 svg no more asserts 2020-12-13 02:21:18 -06:00
treeform db5b1f4cb4 Add winding rule, make float blends public (for shaders) 2020-12-11 21:08:06 -08:00
Ryan Oldenburg 1fbb5c7a0f 0.0.6 vmath bumpy 2020-12-10 19:52:10 -06:00
Ryan Oldenburg 120ad0ad56 bumpy segment 2020-12-10 00:27:58 -06:00
Ryan Oldenburg 4a7e4338c3 actually seems ok to remove 2020-12-09 16:19:59 -06:00
Ryan Oldenburg af130f76b9 comments 2020-12-09 15:05:10 -06:00
Ryan Oldenburg b895030088 all int blends, simd alphafix + softlight, benchmarks 2020-12-09 07:50:30 -06:00
Ryan Oldenburg 8ef4b3ecc8 simd alphafix wins 2020-12-09 05:47:34 -06:00
Ryan Oldenburg d6a9429850 rounding is very expensive 2020-12-09 05:47:14 -06:00
Ryan Oldenburg 711f1f19b6 discuss removed todo 2020-12-09 04:50:17 -06:00
Ryan Oldenburg 1ad2f3e05f consistent names, alphaFix 80char 2020-12-09 04:40:46 -06:00
Ryan Oldenburg 78b1dbab03 simpler 2020-12-09 03:53:35 -06:00
Ryan Oldenburg a449efc386 benchmarks, use floats until proven faster with ints 2020-12-09 02:59:01 -06:00
Ryan Oldenburg c18f0d5f3e f 2020-12-09 02:32:20 -06:00
Ryan Oldenburg cdadfd1cdd drawCorrect knows smooth or not 2020-12-09 02:30:19 -06:00
Ryan Oldenburg bad415401a benchmarking blends 2020-12-09 01:19:05 -06:00
Ryan Oldenburg 49624b6d03 put back 2020-12-09 01:03:52 -06:00
Ryan Oldenburg 85b8967be1 int 2020-12-09 01:00:26 -06:00
Ryan Oldenburg 56dd24e2e9 f 2020-12-09 00:55:46 -06:00
Ryan Oldenburg da9a68b044 more 2020-12-09 00:52:58 -06:00
Ryan Oldenburg 3edb6d6294 more blends as just rgba 2020-12-08 22:36:53 -06:00
Ryan Oldenburg 6842bfb797 unused 2020-12-08 21:54:18 -06:00
Ryan Oldenburg e8da814856 no need for setmem 2020-12-08 21:51:09 -06:00
Ryan Oldenburg 9ad9817959 faster, less code 2020-12-08 21:34:05 -06:00
Ryan Oldenburg 7b58d4bf9a blends small 2020-12-08 19:26:01 -06:00
Ryan Oldenburg e3f09f930b unused 2020-12-08 18:13:07 -06:00
Ryan Oldenburg ec5bc9ba1e simd helping 2020-12-08 18:10:20 -06:00
treeform 2701130dbf Remove unused blends. 2020-12-06 09:35:58 -08:00
Ryan Oldenburg dd1bb58538 p instead 2020-12-05 22:14:33 -06:00
Ryan Oldenburg ccb92fb46a 80 char width 2020-12-05 17:46:21 -06:00
treeform ed5679787d Fix flip. 2020-12-05 00:28:42 -08:00
Ryan Oldenburg d0224dee32 inline 2020-12-04 19:19:46 -06:00
Ryan Oldenburg a9ea7f2872 simpler 2020-12-04 19:19:46 -06:00
Ryan Oldenburg 803c2ecf40 no cast, segments 2020-12-04 18:27:39 -06:00
Ryan Oldenburg de9ef9af4f inline helps by 20% for svg 2020-12-04 18:16:04 -06:00
Ryan Oldenburg a38cd2adad f 2020-12-04 16:57:56 -06:00
Ryan Oldenburg ca2c925d5f faster 2020-12-04 14:31:25 -06:00
Ryan Oldenburg cddfe43315 scanLineHits a bunch faster 2020-12-04 14:15:14 -06:00
Ryan Oldenburg 4536baeefd address todo 2020-12-04 14:15:14 -06:00
Ryan Oldenburg 4a67ac0625 fuzz svg + exceptions 2020-12-04 12:19:00 -06:00
Ryan Oldenburg 2c08ba2760 svg 2020-12-04 12:19:00 -06:00
treeform d1adfba46e Make blur example shorter. 2020-12-04 09:32:38 -08:00
treeform 07886e9c44 Make svg faster, add tiger exmaple, add SomePath. 2020-12-04 09:25:00 -08:00
treeform 7067ad62ee Add svg file format. 2020-12-04 08:17:03 -08:00
Ryan Oldenburg 1223d91816 inplace blur 2020-12-04 00:26:22 -06:00
treeform ae0930ba8d Use benchy for benchmarks. 2020-12-03 22:11:54 -08:00
Ryan Oldenburg 9fbd37bb53 use memset 2020-12-03 21:50:31 -06:00
Ryan Oldenburg fce9f12147 add links to blend formula sources 2020-12-03 21:45:25 -06:00
Ryan Oldenburg bed384db6a add links to blend formula sources 2020-12-03 20:21:15 -06:00
Ryan Oldenburg 9633f29a6b simpler SetSat 2020-12-03 20:18:15 -06:00
Ryan Oldenburg fcf072ff5a inplace blur, faster fill 2020-12-03 19:58:53 -06:00
Ryan Oldenburg b2cf9776c1 small 2020-12-03 15:59:46 -06:00
Ryan Oldenburg a69a4327a0 in place sharp and apply opacity 2020-12-03 14:36:54 -06:00
Ryan Oldenburg e1a4d7edc4 more + benchmark 2020-12-03 14:24:49 -06:00
Ryan Oldenburg 07d2c15fc2 some more stuff 2020-12-03 13:54:53 -06:00
Ryan Oldenburg 256d03a226 less 2020-12-03 01:45:47 -06:00
treeform 4ae59d51da Prints out all path commands it can parse. 2020-12-02 23:35:23 -08:00
treeform 3ae54dad41 More path tests. 2020-12-02 23:25:24 -08:00
treeform fa6b8352e6 Add path tests. 2020-12-02 23:20:14 -08:00
treeform 13092aef5e Break out of both loops. 2020-12-02 23:05:37 -08:00
Ryan Oldenburg 37c5869b0c some small things 2020-12-03 00:09:11 -06:00
Ryan Oldenburg 3cb35ddee1 from chatting 2020-12-01 21:14:15 -06:00
Ryan Oldenburg 18967133ff alpha for masks 2020-12-01 20:58:15 -06:00
treeform 37428fb28c Change APIs some. Add 2 examples. 2020-12-01 09:50:20 -08:00
Ryan Oldenburg 8ed2c7a5b3 f 2020-11-29 15:47:57 -06:00
Ryan Oldenburg 63aba341ab jpgstb -> jpg 2020-11-29 15:46:56 -06:00
Ryan Oldenburg c5942a478f just use stb for jpg 2020-11-29 15:46:56 -06:00
Ryan Oldenburg 89fd898764 nim jpg stuff 2020-11-29 15:46:56 -06:00
treeform 84c6a1e2eb Merge branch 'master' of github.com:treeform/pixie 2020-11-28 22:28:55 -08:00
treeform 346cdca51c Made shadows over 50% faster. 2020-11-28 22:28:38 -08:00
Ryan Oldenburg 2bee400d47 path 2020-11-28 22:00:00 -06:00
Ryan Oldenburg b047aad920 faster 2020-11-28 17:59:55 -06:00
treeform 2b67d52861 Move fractional to common. 2020-11-27 21:51:06 -08:00
Ryan Oldenburg f0bbf02bfd basic nim jpg works, png dir 2020-11-27 22:53:16 -06:00
Ryan Oldenburg 4c93950178 use rgb 2020-11-27 22:51:17 -06:00
treeform 8282611af9 Remove the copy on draw functions. 2020-11-27 16:51:53 -08:00
Ryan Oldenburg b683c751b8 jpg + stb for now 2020-11-27 15:52:24 -06:00
Ryan Oldenburg a8d667f879 jpg checkpoint 2020-11-27 15:52:23 -06:00
treeform 41edec4711 Add toAlphy and fromAlphy. 2020-11-27 10:18:43 -08:00
treeform b86d914dd0 Add the uber draw. 2020-11-25 22:32:50 -08:00
treeform 9fa80b1a61 Small clean up! 2020-11-25 10:10:08 -08:00
treeform 57af191774 Both draw in place and not in place done. 2020-11-25 10:09:12 -08:00
treeform 58e6950b51 Add drawCorrect and drawStepper. And blends. 2020-11-24 17:49:43 -08:00
treeform 549f2e17b0 Add sharpOpacity. 2020-11-23 17:12:04 -08:00
treeform 3b68dd77bb Move parseBlendMode to mirror. 2020-11-23 17:12:04 -08:00
treeform df131df53f Tighter newSeqNoInit 2020-11-23 17:12:04 -08:00
treeform b160fdf45c Need to clear the color. 2020-11-23 17:12:04 -08:00
treeform 3764063605 Add bmIntersectMask and bmExcludeMask. 2020-11-23 08:56:31 -08:00
Ryan Oldenburg d5e977b6b2 better png benchmark, use bestspeed 2020-11-22 22:01:56 -06:00
Ryan Oldenburg 278cb4533e quantization tables 2020-11-22 22:01:14 -06:00
treeform b65d7611b7 Make some procs not be in place but return a copy. 2020-11-22 19:52:52 -08:00
treeform e3d5c292c3 Rename draw functions. 2020-11-22 19:24:00 -08:00
treeform f5dbe4102d Add newImageNoInit and newSeqNoInit. 2020-11-22 18:47:23 -08:00
treeform 3a341dbe0b Fixed green. 2020-11-22 12:12:53 -08:00
treeform 7e43a91a2b Update vmath dep. 2020-11-21 20:23:15 -08:00
treeform f7ab97ae87 Add procs that fidget/mirror and typography require. 2020-11-21 19:44:10 -08:00
Ryan Oldenburg ae2cc68b77 cleaner 2020-11-21 20:21:07 -06:00
Ryan Oldenburg 129458ea95 more 2020-11-21 20:05:48 -06:00
Ryan Oldenburg 137a832c3a extensions 2020-11-21 20:02:57 -06:00
Ryan Oldenburg df0756941c more jpg 2020-11-21 20:01:34 -06:00
Ryan Oldenburg 641b2b79fa much faster 2020-11-21 20:01:34 -06:00
Ryan Oldenburg dbf6a481c4 jpg checkpoint 2020-11-21 20:01:34 -06:00
treeform cd612f9a6c Use matrix in all draw paths. 2020-11-21 16:58:53 -08:00
treeform acc6822d0e Add drawFast4 integer-matrix. 2020-11-21 16:51:38 -08:00
treeform 9384fac99d Rework blends. 2020-11-21 16:51:38 -08:00
treeform 7eea5ff2d0 Move blends. Better Draw. 2020-11-21 16:51:38 -08:00
Ryan Oldenburg 5f7908f8a4 transparency chunk 2020-11-21 01:09:05 -06:00
treeform 344063ddbc Simplify draw, bring in blends. 2020-11-20 21:50:13 -08:00
treeform c1cfbe0336 More work on inplace vs copy draw. 2020-11-20 21:16:54 -08:00
Ryan Oldenburg 3eebfdb902 readme 2020-11-20 23:09:52 -06:00
treeform 2ee05e25ef
Merge pull request #4 from guzba/master
read, encode, decode, write
2020-11-20 20:45:09 -08:00
treeform 4378d74e05 add translate 2020-11-20 20:42:22 -08:00
Ryan Oldenburg 6a74639498 read, encode, decode, write 2020-11-20 22:42:01 -06:00
treeform 23f7134fd4 Bench: inplace draw vs copy draw. 2020-11-20 20:09:09 -08:00
Ryan Oldenburg fbce3f50db flip loop and case order 2020-11-20 22:01:32 -06:00
Ryan Oldenburg b284d7bada f 2020-11-20 20:42:05 -06:00
Ryan Oldenburg 79e9ee7cd4 png 2020-11-20 20:21:27 -06:00
Ryan Oldenburg f978516b39 f 2020-11-20 20:13:06 -06:00
Ryan Oldenburg e3e94cff85 f 2020-11-20 18:20:30 -06:00
Ryan Oldenburg 552b167953 f 2020-11-20 15:03:39 -06:00
Ryan Oldenburg c114ca02dd data len check 2020-11-20 13:53:01 -06:00
Ryan Oldenburg 42da6582cf bmp stuff 2020-11-20 13:18:37 -06:00
treeform 724b2f30da Fix tests. 2020-11-20 10:00:58 -08:00
treeform 305d65187c Add supprot for 24bit bitmaps. 2020-11-20 09:56:34 -08:00
treeform f8ea6c3717 Add bmp file format. 2020-11-20 09:14:33 -08:00
treeform cb50a1cb86 Do a little image work. 2020-11-20 09:13:53 -08:00
treeform d3e908ba2d Add a bunch methods to images. 2020-11-19 22:12:44 -08:00
treeform 8a5a024cb8 Add toMask and toImage. 2020-11-19 19:44:24 -08:00
treeform 2626d92995 Add masks. 2020-11-19 19:37:59 -08:00
treeform 003e7bfac1 Add Image and Paths bones. 2020-11-19 19:25:54 -08:00
treeform a1bfdb073b Add files. 2020-11-19 18:45:43 -08:00
treeform ced498821e First commit 2020-11-19 18:45:26 -08:00
treeform 238479e72e Initial commit 2020-11-19 18:41:32 -08:00