summaryrefslogtreecommitdiff
path: root/src/modules/rocket
diff options
context:
space:
mode:
authorVito Caputo <vcaputo@pengaru.com>2023-01-19 22:52:52 -0800
committerVito Caputo <vcaputo@pengaru.com>2023-01-21 13:34:12 -0800
commit6d6619cc5f4f04710dd7dfccce713385924b3b06 (patch)
tree3012928a23a09910d0439ab51f90920282e62463 /src/modules/rocket
parent9c5d17309be237f799105e252a26e2c32c2d9c50 (diff)
til_stream: introduce til_stream_hooks_t et al
There needs to be a way for a meta module like rocket to take ownership of pipes immediately upon instantiation. Since the pipes are created on demand as they become tapped by the modules using htem, the simplest way to do this is to register some callbacks with the ability to intercept the pipe creation in terms of ownership and driving tap control etc. This commit forms a minimal implementation of that, with the ability to have a single intercepter hooked into a given stream. It's a first-come-first-served situation, but that should suffice for now since the rocket meta module would be the entrypoint for such constructions. It then calls into another module to produce on the stream, after it'll already have its hooks registered. There might be a need for stacking hooks to let multiple modules control pipes. GNU Rocket for instance only deals with floats/doubles, and doesn't make it particularly easy to work on higher order concepts like say orbiting a vector around a point spatially. It might make sense to allow compositing of editors where there's rocket controlling the simple floats, and another doing dimensional/spatial stuff, with separate stacked meta modules accomodating those editors. But that's putting the cart before the horse, let's do the stupid simple thing for now and see what this is like.
Diffstat (limited to 'src/modules/rocket')
0 files changed, 0 insertions, 0 deletions
© All Rights Reserved