summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Thompson <dthompson2@worcester.edu>2023-04-23 15:55:18 -0400
committerDavid Thompson <dthompson2@worcester.edu>2023-04-23 15:55:18 -0400
commit310fe04dbaa6f95fdb2da50b1c6daa73148eec5d (patch)
tree4d42a09a25dd788cb1ebcdc3c3caee051e329a58
parent0ca320591f643ceef7e6099137f9088ae6f69683 (diff)
Update TODO.
-rw-r--r--TODO.org26
1 files changed, 16 insertions, 10 deletions
diff --git a/TODO.org b/TODO.org
index f675972..0edfb5d 100644
--- a/TODO.org
+++ b/TODO.org
@@ -1,9 +1,4 @@
* Tasks
-** TODO [#A] Images that can be rendered in Geiser REPL
-Make =<image>= type that prints as =#<Image: /path/to/image.png>=
-** TODO [#A] CPU-side pixel buffer manipulation
-Make =<pixbuf>= type and use it for all image loading/manipulation,
-such as texture creation.
** TODO [#A] Bug: Vertical line rendering not working
Vertical lines are invisible. Not great!
** TODO [#A] Improve window resizing support
@@ -51,11 +46,16 @@ Render a vector path to a framebuffer and you'll notice that the first
filled path doesn't show up. Why is this??
** TODO [#B] Framebuffer multisampling
Requires creating multisampled texture.
-** TODO [#B] Dedicated audio thread
-Allow use of (ice-9 futures) for parallelism?
-** TODO [#B] Dedicated render thread
-** TODO [#B] Worker threads
-To parallelize image loading and such.
+** TODO [#B] Multiple threads
+SDL2 operates on the main thread, so that will control the game loop
+and rendering. OpenAL is already using its own thread for audio. So,
+what's needed is another thread for managing game state and some
+number of generic worker threads to offload things like loading data
+from the file system. Of course, this complicates things
+significantly, so the API will have to be carefully designed to do all
+the thread synchronization right so the user doesn't have to think
+about it. Should I add a dependency on guile-fibers??
+
** TODO [#B] Texture fills for vector paths
** TODO [#B] Even-odd rule fills for vector paths
Right now only the non-zero rule is supported.
@@ -69,6 +69,7 @@ Allow more settings to be modified. Add angular velocity.
Auto-expand to hold all particles rather than setting a hard cap
upfront.
** TODO [#B] Support loading fonts from system font cache
+** TODO [#C] Rename array-list-size to array-list-length
** TODO [#C] Bug: Bounding boxes for stroked paths are too small
Not sure how to fix right now but the bounding boxes are too small
because they only account for the points within a path, not the
@@ -100,6 +101,11 @@ naive way that does not use physically-based equations.
** TODO [#C] Right-to-left text rendering
** TODO [#C] Top-to-bottom text rendering
** TODO [#C] Octree spatial partitioning
+** DONE [#A] Images that can be rendered in Geiser REPL
+Make =<image>= type that prints as =#<Image: /path/to/image.png>=
+** DONE [#A] CPU-side pixel buffer manipulation
+Make =<pixbuf>= type and use it for all image loading/manipulation,
+such as texture creation.
** DONE [#A] Fix 9-patch rendering not working with texture regions
** DONE [#A] Add #:clear-color argument to run-game
** DONE [#A] Tests for (chickadee math rect)