323257a...
by
Andrei Alexeyev <email address hidden>
coroutine: break down into smaller sub-modules
84bc955...
by
Andrei Alexeyev <email address hidden>
coroutine,stage: remove global sched; inherit sched from calling task
This allows having multiple task schedulers without having to switch the
global "target" scheduler for INVOKE_ macros.
An important side effect of this change is that it's not possible to use
the regular INVOKE_ macros from a non-coroutine context anymore. A
series of complimentary SCHED_INVOKE_ macros was added that behave
identically, but allow explicitly specifying a scheduler as the first
argument. The stage loop has been slightly refactored to accomodate this
behavior.
9f4fea3...
by
Andrei Alexeyev <email address hidden>
resources: regenerate sprite atlases
All sprites have been autocropped, with virtual paddings added to
preserve the original dimensions. This saves some VRAM and fragment
shader invocations.
e98b0e2...
by
Andrei Alexeyev <email address hidden>
atlas: convert old overrides into new-style configs
This also fixes a few sprites having slightly incorrect sizes
960b38f...
by
Andrei Alexeyev <email address hidden>
scripts: rewrite gen-atlas with autotrimming support
Uses PIL/Pillow exclusively now, without imagemagick, since we don't
really need 16bpc support.
Overrides have been replaced with more flexible sprite configs. There is
a conversion mechanism for migration, to be applied in the following
commit.
1c02967...
by
Andrei Alexeyev <email address hidden>
atlas: fix typo
0adaf17...
by
Andrei Alexeyev <email address hidden>
sprite: handle virtual paddings transparently
Most client code no longer needs to care about paddings at all, aside
from some very special cases involving dynamic creation of padded
sprites. So far we only have one known example of this in portrait_render().
This should let us optimize most of our sprites with autotrimming in the
future.
Additionally, support for deprecated offset_{x,y} keys in sprite files
has been removed.
8927eda...
by
Andrei Alexeyev <email address hidden>
dynstage: desperate safeguard for race against the linker
Even with LIBRARY_BUMP_DELAY, on some systems we'll try to reload the
shared library too early. If dlopen fails, try to repeat it a few times
with short but increasing delays. This should be extremely rare.
d74f54e...
by
Andrei Alexeyev <email address hidden>
ci: fix linux release build for realsies this time pinky promise