| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Exactly in the places to the right of the line.
|
| |
|
|
|
|
|
| |
This is strictly worse than before, both with barbara.pgm and more
subtly with t.pgm.
|
|
|
|
|
|
|
|
|
| |
Undo commit 70a03be0d0 and reinline the helper extracted there.
I have a better sense now of the primitives to reuse between greyscale
and color dithering.
https://merveilles.town/@akkartik/106571585137582228
|
|
|
|
|
|
|
|
|
| |
The Barbara test image has been looking right since commit 430dd67cb2.
However, t.pgm has not. This doesn't fix it, but does seem like an
improvement.
The remaining error seems to be unrelated to rounding. Adding 8 more
bits of precision has no effect.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
It looks like seeking the nearest neighbor in HSL space leads to more
saturated colors.
|
|
|
|
| |
Inline a helper.
|
|
|
|
| |
Extract a helper.
|
|
|
|
| |
Inline an unnecessary block.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Now we get a perfect checkerboard pattern.
|
|
|
|
| |
https://merveilles.town/@akkartik/106559551043772522
|
|
|
|
| |
https://merveilles.town/@akkartik/106557664535993377
|
|
|
|
| |
Starting to look right.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
I had some logic to make hue distance cylindrical, but it wasn't right.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Typo in commit fe3cbcd77: it only rendered pbm/pgm.
|
|
|
|
| |
Thanks Sumeet Agarwal for raising this issue.
|
| |
|
|
|
|
| |
Looks pretty bad compressing 256 shades of grey to 8.
|
| |
|
|
|
|
|
|
| |
Supports just some ASCII formats: https://en.wikipedia.org/wiki/Netpbm
Colors are messed up. That's next.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I thought I needed these for this bouncing-ball demo:
def (bounce screen)
with (w (width screen)
h (height screen)
cx 16
cy 16
dx 12
dy 19)
while 1
clear screen
ring screen cx cy 16 3 5
cx += dx
cy += dy
when (or (cx > w) (cx < 0))
set dx 0-dx
when (or (cy > h) (cy < 0))
set dy 0-dy
for _ 0 (< _ 100) ++_ # delay
No matter how I adjusted the delay I couldn't get rid of the jitter. So
I built a double-buffered version:
(bounce2 . [def (bounce2 screen)
with (w (width screen)
h (height screen)
cx 16
cy 16
dx 12
dy 19
screen2 (new_screen (columns screen)
(lines screen)))
while 1
clear screen2
ring screen2 cx cy 16 3 5
cx += dx
cy += dy
when (or (cx > w) (cx < 0))
set dx 0-dx
when (or (cy > h) (cy < 0))
set dy 0-dy
blit screen2 screen
for _ 0 (< _ 100) ++_]) # delay
But it didn't make a difference! Turns out nothing will help you when
successive frames are too far apart. This is the correct tweak to
`bounce`:
- dx 12
- dy 19)
+ dx 1
+ dy (/ 19 12))
Still, we'll keep double-buffering around for the future.
|
|
|
|
|
|
|
| |
Broken since commit c95648c96 on Jul 3.
Unclear what test to write for this. Should clear-stream check for NULL?
Should apply-clear?
|
|
|
|
| |
Still no support for acute-angled control points.
|