diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2021-07-07 19:43:56 -0700 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2021-07-07 19:43:56 -0700 |
commit | 91af9ccf2ccc29611216cf2ab43837bc74d6a310 (patch) | |
tree | 6d670a70dacf3cd049be16d212992ef1f422570c /img.mu | |
parent | d73c84e299d7617014c67f34ad7afbc641eaf690 (diff) | |
download | mu-91af9ccf2ccc29611216cf2ab43837bc74d6a310.tar.gz |
ppm support
Typo in commit fe3cbcd77: it only rendered pbm/pgm.
Diffstat (limited to 'img.mu')
-rw-r--r-- | img.mu | 35 |
1 files changed, 32 insertions, 3 deletions
diff --git a/img.mu b/img.mu index 551ce30a..cf75d962 100644 --- a/img.mu +++ b/img.mu @@ -327,14 +327,43 @@ fn render-ppm-image screen: (addr screen), _self: (addr image), xmin: int, ymin: { compare img-x, *width-a break-if->= + # r channel + var r: int { var src-a/eax: (addr byte) <- index data, i var src/eax: byte <- copy-byte *src-a - var src-int/eax: int <- copy src - # TODO + copy-to r, src + } + i <- increment + # g channel + var g: int + { + var src-a/eax: (addr byte) <- index data, i + var src/eax: byte <- copy-byte *src-a + copy-to g, src } - x <- increment i <- increment + # b channel + var b: int + { + var src-a/eax: (addr byte) <- index data, i + var src/eax: byte <- copy-byte *src-a + copy-to b, src + } + i <- increment + # + var color: int + { + var h/ecx: int <- copy 0 + var s/edx: int <- copy 0 + var l/ebx: int <- copy 0 + h, s, l <- hsl r, g, b + var tmp/eax: int <- nearest-color-euclidean-hsl h, s, l + copy-to color, tmp + } + pixel screen, x, y, color + # + x <- increment img-x <- increment loop } |