Michael Fiano
7dedcc7582
Rename project.
2 months ago
Michael Fiano
3d21be0a68
Update system definition.
2 months ago
Michael Fiano
f31d4adddf
Update system definitions.
2 months ago
Michael Fiano
a0ccbdb37d
Update dependency local package names.
2 months ago
Michael Fiano
f284647596
Proof of concept tile rendering system in place.
3 months ago
Michael Fiano
ed78bab066
Export with-pool-color
3 months ago
Michael Fiano
5507685d38
Add basic color trait.
3 months ago
Michael Fiano
09f8cbcd01
Minor changes.
3 months ago
Michael Fiano
f571993db0
Use more exact weights for the rgb->gray converter and document where these magic numbers come from.
3 months ago
Michael Fiano
2252e57c81
Use less storage space for gray/gray-alpha models.
3 months ago
Michael Fiano
c16e775bc0
Minor changes to a couple converters.
3 months ago
Michael Fiano
9666bb348b
Add gray/gray-alpha color models.
3 months ago
Michael Fiano
2505dc2c4a
Add a function to transcode a color's channels to multiple integer values.
3 months ago
Michael Fiano
c863c3e05c
Remove ordered rgb models.
3 months ago
Michael Fiano
0df207b81b
Add useful channel introspection functions.
3 months ago
Michael Fiano
24dfafe0d7
Add argb, bgra, bgr, abgr models/constructors
3 months ago
Michael Fiano
a217bebd5d
Initial split.
3 months ago
Michael Fiano
b8afe3c461
Refactor.
3 months ago
Michael Fiano
734a819beb
Minor: Fix a couple comments.
3 months ago
Michael Fiano
777a983f73
Add tests for the conversion graph.
3 months ago
Michael Fiano
493686368e
Reorganize/condense unit test code.
3 months ago
Michael Fiano
d419c793c8
Reorganization.
4 months ago
Michael Fiano
4d96ad7475
Flatten directory hierarchy.
4 months ago
Michael Fiano
13835b1eed
Rename project.
4 months ago
Michael Fiano
426e68c694
Slightly simplify model-id and space-id calculation.
4 months ago
Michael Fiano
c6613bf102
Move color space id computation to register-color-space.
4 months ago
Michael Fiano
7f6238e1e1
Change a division by 2 to a muliplication by 0.5.
4 months ago
Michael Fiano
321a944743
Fix define-conversion's expansion so we aren't needlessly closing over the graph.
4 months ago
Michael Fiano
0373077799
Simplify hsl->rgb and hsv->rgb conversions.
...
They don't need to go through hsl->hsl and hsv->hsv for space conversion now, which is very expensive.
4 months ago
Michael Fiano
64e94e6af1
Force tests to be recompiled before executed.
...
This seems to help ensuring we are actually running up to date compiled test code, and has helped me
discover code problems in the past.
4 months ago
Michael Fiano
8913898a7c
Separate writable dynamic worker state from the static context state so we can have per-thread worker
...
states.
4 months ago
Michael Fiano
3a856625cf
Minor changes to color difference algorithm.
4 months ago
Michael Fiano
2411a19c14
Add an optimization declaration to a function.
4 months ago
Michael Fiano
8190f7af74
Minor changes.
4 months ago
Michael Fiano
7ef8a3bd90
Rename ensure-color-pool to ensure-pool, since we are already in the color package.
4 months ago
Michael Fiano
8fb7e7f923
Clean up gamma code.
4 months ago
Michael Fiano
9b489310b0
Fix a type declaration in pooling code.
4 months ago
Michael Fiano
876aaf58a7
once-only some variables in with-pool-color.
4 months ago
Michael Fiano
e003582d70
I forgot to read-time evaluate an arithmetic expression in a gamma function.
4 months ago
Michael Fiano
4e9ca7372b
Reduce consing to zero.
...
The issue is that {de,}linearize-rgb-channel is returning a double-float, which is a no-no and must
be boxed. We can't inline it because it's a method, so convert the methods into a regular function
that does dynamic dispatch itself with ETYPECASE/ECASE, and inline _that_.
This reduces consing to nothing with a test case of many iterations, and boosts performance by about
2x!
4 months ago
Michael Fiano
72c1631a4b
Enable pooling unconditionally to remove a dynamic variable lookup every pool access.
...
There should be no reason to ever disable pooling. We should write unit tests to ensure it is
working though :)
4 months ago
Michael Fiano
9a1de9e0bf
Add a model-name function that calls (class-name (class-of model)), which seems to be more efficient
...
than TYPE-OF.
4 months ago
Michael Fiano
8a37df1852
Let's see what this idea does.
4 months ago
Michael Fiano
98313bccbc
Wrap model class definitions in a define-model macro.
4 months ago
Michael Fiano
9f5c94cae3
fixup! Split up define-color-spaces into separate toplevel define-color-space forms.
4 months ago
Michael Fiano
c38fa6eded
Rename color-spaces slot of the context to color-space-data.
4 months ago
Michael Fiano
336bd1c0c9
Rename alpha.lisp and storage.lisp to mixin-alpha.lisp and mixin-storage.lisp.
4 months ago
Michael Fiano
a7a69adde9
Split up define-color-spaces into separate toplevel define-color-space forms.
4 months ago
Michael Fiano
8616232a20
Re-enable pooling now that it works due to the previous commit.
4 months ago
Michael Fiano
d3e579f2de
Fix pooling from leaking lots of memory and effectively not working at all in a specific scenario.
...
The scenario where it did not work and leaked memory, was when WITH-POOL-COLOR did not specify a
space. The problem was, that we retrieved a color with a NIL space, which told the constructor to
use the default space, but then when we returned the color back to the pool when we were finished,
we queried the color for its space, and ensured a pool existed with the queried model/space
combination of that color, but the pool that it was originally a member of was the (model . nil)
pool.
The fix was quite simple. Pass a space argument to PUT-POOL-COLOR that was the same space passed to
GET-POOL-COLOR, and do not query for the color's space in GET-POOL-COLOR, instead using the passed
in space.
As an additional optimization, we also pass the model to GET-POOL-COLOR, to prevent us having to
query for that.
4 months ago