~dokomix/dokomix/+git/taisei:coroutine-refactor

Last commit made on 2022-12-22
Get this branch:
git clone -b coroutine-refactor https://git.launchpad.net/~dokomix/dokomix/+git/taisei

Branch merges

Branch information

Name:
coroutine-refactor
Repository:
lp:~dokomix/dokomix/+git/taisei

Recent commits

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.

4cf14ee... by Alice D <email address hidden>

make Dockerfile.windows self-contained

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