Resource files are no longer packaged and preloaded all in advance.
Instead, they are downloaded while the game is running.
The implementation is less than ideal, but it works. Resources are
requested on demand and cached into IDBFS. Unfortunately, since the
resource system was not designed with web-style asynchrony in mind and
we aren't ready for threads either, we have no way to do any useful work
while a required file is downloading. To somewhat offset that, we also
pre-fetch files that were not requested yet. The pre-fetching is limited
to 4 files at a time, which seems to be a reasonable compromise between
throughput and cold-cache load latency on slow connections. Also
unfortunately, it's dumb as rocks: we have no way of knowing which files
we will actually be needing soon, so the pre-fetching is done in
whatever order the files were indexed.
Possibly the easiest way to improve this system would be to bundle (and
compress) all of the tiny text files together to alleviate the overhead
of hundreds of HTTP requests.
Introduces wrappers around memory allocation functions in `memory.h`
that should be used instead of the standard C ones.
These never return NULL and, with the exception of `mem_realloc()`,
zero-initialize the allocated memory like `calloc()` does.
All allocations made with the memory.h API must be deallocated with
`mem_free()`. Although standard `free()` will work on some platforms,
it's not portable (currently it won't work on Windows). Likewise,
`mem_free()` must not be used to free foreign allocations.
The standard C allocation functions are now diagnosed as deprecated.
They are, however, available with the `libc_` prefix in case interfacing
with foreign APIs is required. So far they are only used to implement
`memory.h`.
Perhaps the most important change is the introduction of the `ALLOC()`,
`ALLOC_ARRAY()`, and `ALLOC_FLEX()` macros. They take a type as a
parameter, and allocate enough memory with the correct alignment for
that type. That includes overaligned types as well. In most
circumstances you should prefer to use these macros. See the `memory.h`
header for some usage examples.
Emscripten 3.1.27 reduced the default from 5MB to 64KB, which is not
enough for Taisei in some cases (e.g. loading some of the larger iqm
models; might want to switch to heap allocation there).
Squashed commit of the following:
commit 9ab0197ee1
Author: Andrei Alexeyev <akari@taisei-project.org>
Date: Wed Dec 28 23:05:58 2022 +0100
build: add dummy descriptions for deprecated options
commit b0c41d4719
Author: Alice D <alice@starwitch.productions>
Date: Mon Dec 26 15:18:09 2022 -0500
update docker containers with ones containing meson 0.63.3
commit a2dd4173fc
Author: Andrei Alexeyev <akari@taisei-project.org>
Date: Sun Dec 25 19:20:44 2022 +0100
build: featurize audio options
commit 7c59e2a569
Author: Andrei Alexeyev <akari@taisei-project.org>
Date: Sun Dec 25 19:20:35 2022 +0100
build: remove dead code
commit cf500af137
Author: Andrei Alexeyev <akari@taisei-project.org>
Date: Sun Dec 25 19:07:37 2022 +0100
doc: update BUILD.rst
commit 9764ac706f
Author: Andrei Alexeyev <akari@taisei-project.org>
Date: Sun Dec 25 17:12:37 2022 +0100
ci: disable WGI joystick backend for SDL
Fails to build with latest llvm-mingw
commit 2d4f310b90
Author: p-sam <p-sam@d3vs.net>
Date: Sun Dec 25 17:03:47 2022 +0100
switch: fix missing include
commit 9264f1649d
Author: Andrei Alexeyev <akari@taisei-project.org>
Date: Sat Dec 24 14:36:41 2022 +0100
ci: update meson to 0.63.3 due to a bug
commit 3e37be3d8f
Author: Andrei Alexeyev <akari@taisei-project.org>
Date: Sat Dec 24 13:42:34 2022 +0100
ci: update build options
commit 281a39a4f5
Author: Alice D <alice@starwitch.productions>
Date: Sun Dec 18 00:17:07 2022 -0500
ci: change when apt is cleaned up for switch image
commit 2f2100a84c
Author: Alice D <alice@starwitch.productions>
Date: Sun Dec 18 00:11:08 2022 -0500
ci: bump switch homebrew container version
commit ebaff59260
Author: Alice D <alice@starwitch.productions>
Date: Sat Dec 17 22:55:39 2022 -0500
ci: bump windows container version
commit 7ce6f23419
Author: Andrei Alexeyev <akari@taisei-project.org>
Date: Sat Dec 17 07:36:28 2022 +0100
build: featurize renderer options
commit a345f21b35
Author: Andrei Alexeyev <akari@taisei-project.org>
Date: Sat Dec 17 07:33:30 2022 +0100
build: revert to explicit fallback for libzstd
Implicit fallback causes conflicts in the basis_universal subproject
https://github.com/mesonbuild/meson/issues/11189
commit b2de61f5c5
Author: Andrei Alexeyev <akari@taisei-project.org>
Date: Sat Dec 17 05:29:29 2022 +0100
build: remove debug_opengl
This option was always misdocumented, as it only controlled whether GL
debugging is on by default. You can still control it with the
TAISEI_GL_DEBUG environment variable, which is set to 1 in meson devenv.
commit 4c659ba195
Author: Andrei Alexeyev <akari@taisei-project.org>
Date: Fri Dec 16 08:03:37 2022 +0100
build: set up useful env vars for meson devenv
Makes Taisei load resources from the source tree, making live reload
work; enables OpenGL debugging by default; works around ASan stack use
after return false positives.
commit 1ddc58b84a
Author: Andrei Alexeyev <akari@taisei-project.org>
Date: Wed Dec 14 08:06:32 2022 +0100
build: featurize docs; always install licenses
commit c3a94d7f5b
Author: Andrei Alexeyev <akari@taisei-project.org>
Date: Wed Dec 14 07:46:28 2022 +0100
build: featurize shader_transpiler
commit 619d82ae36
Author: Andrei Alexeyev <akari@taisei-project.org>
Date: Wed Dec 14 07:38:30 2022 +0100
build: allow libzip fallback by default
commit 79ab72292a
Author: Andrei Alexeyev <akari@taisei-project.org>
Date: Wed Dec 14 07:35:51 2022 +0100
build: featurize use_libcrypto
commit b393077f71
Author: Andrei Alexeyev <akari@taisei-project.org>
Date: Wed Dec 14 05:03:20 2022 +0100
build: featurize validate_glsl
commit 7d76484079
Author: Andrei Alexeyev <akari@taisei-project.org>
Date: Wed Dec 14 04:34:31 2022 +0100
build: featurize some more installation options
commit 17c0bda205
Author: Andrei Alexeyev <akari@taisei-project.org>
Date: Wed Dec 14 03:24:46 2022 +0100
build: deprecate enable_zip for vfs_zip; convert package_data into feature
commit 9a4ef8c091
Author: Andrei Alexeyev <akari@taisei-project.org>
Date: Wed Dec 14 02:37:55 2022 +0100
build: deprecate developer=auto; default to false
commit 807240e508
Author: Andrei Alexeyev <akari@taisei-project.org>
Date: Wed Dec 14 02:24:04 2022 +0100
build: move subproject fallback info into wraps
commit 08c953f487
Author: Andrei Alexeyev <akari@taisei-project.org>
Date: Wed Dec 14 01:57:33 2022 +0100
build: deprecate 'static' option
Meson has a built-in `prefer_static` now
commit c575601537
Author: Andrei Alexeyev <akari@taisei-project.org>
Date: Wed Dec 14 01:49:31 2022 +0100
build: remove complicated shaderc detection logic
Meson does all of this internally since 0.51.0
commit cd2d460d4b
Author: Andrei Alexeyev <akari@taisei-project.org>
Date: Wed Dec 14 01:45:17 2022 +0100
build: Require meson >=0.63.0
commit 10abd790f7
Author: Andrei Alexeyev <akari@taisei-project.org>
Date: Mon Dec 12 05:16:47 2022 +0100
ci: remove meson dist version workaround from release workflow
Meson should know the correct version now
commit 31a07d8c3c
Author: Andrei Alexeyev <akari@taisei-project.org>
Date: Mon Dec 12 03:46:28 2022 +0100
build: use built-in summary() function
commit 0c47f6d14b
Author: Andrei Alexeyev <akari@taisei-project.org>
Date: Mon Dec 12 04:33:01 2022 +0100
build: remove -Dversion_fallback and introduce .VERSION file
The version script will now first try to read the version from a
.VERSION file in the source root. If that file does not exist, it will
query git. The .VERSION file is not included in the git repository, it
is generated for inclusion in source tarballs.
Package maintainers who had any use for -Dversion_fallback may want to
create the .VERSION file themselves.
Additionally, some git-specific files have been removed from source
tarballs.
commit d32332a5e3
Author: Andrei Alexeyev <akari@taisei-project.org>
Date: Mon Dec 12 03:00:07 2022 +0100
build: set the "real" version in project()
commit f9a3fbc729
Author: Andrei Alexeyev <akari@taisei-project.org>
Date: Mon Dec 12 01:50:08 2022 +0100
build: raise meson_version and remove some legacy workarounds
Effectively 0.56.0 was already required since we started using some of
its features at some point.
This also fixes all current meson warnings.
* initial commit of release automation
squashing commits
Squashed commit of the following:
commit c4f2a423a587201874229af541cd93e8096061fa
Author: Alice D <alice@starwitch.productions>
Date: Tue May 11 19:23:38 2021 -0400
fix changelogs and prevent no changelog from blocking release
commit 5af6d66dc1d0f9842b42c85ac0fba346b080351a
Author: Alice D <alice@starwitch.productions>
Date: Tue May 11 18:53:47 2021 -0400
fix file extensions for sha256sum
commit 0327bc5e3d4ba3b6fe9c66a8e50d1f05c0a6457b
Author: Alice D <alice@starwitch.productions>
Date: Tue May 11 18:43:03 2021 -0400
fix macos and linux
commit 7065adf4691deec45ed39a160d795b6613b84df5
Author: Alice D <alice@starwitch.productions>
Date: Tue May 11 18:32:17 2021 -0400
don't stomp over source zip
commit 0df7be4a0072bdcd17d4fb7902e070c9e3f847b5
Author: Alice D <alice@starwitch.productions>
Date: Tue May 11 18:25:19 2021 -0400
add correct file
commit 0585258439c23fd1ddff77bd60442da73fc2b635
Author: Alice D <alice@starwitch.productions>
Date: Tue May 11 18:21:06 2021 -0400
whoops
commit e85623afd3ac6def2a128f03c56d7713679558be
Author: Alice D <alice@starwitch.productions>
Date: Tue May 11 18:09:07 2021 -0400
kfix env
commit b98c0942c649430e62f5128bd578d1aa64190a7d
Author: Alice D <alice@starwitch.productions>
Date: Tue May 11 18:02:44 2021 -0400
fix missing output
commit 1f9f6dff140a218c452ba0afe9207d4b95603b71
Author: Alice D <alice@starwitch.productions>
Date: Tue May 11 17:59:20 2021 -0400
fix paths for zip
commit 9e5358a8a33a08daf59968992e6b5790b559695e
Author: Alice D <alice@starwitch.productions>
Date: Tue May 11 17:44:03 2021 -0400
fix paths for zip
commit a641521775069d746d7edcf3e114d83848a44b5a
Author: Alice D <alice@starwitch.productions>
Date: Tue May 11 17:31:23 2021 -0400
fix names and paths
commit ed0efb972877aee9f407d3fbbeef7d4c4c0e67f6
Author: Alice D <alice@starwitch.productions>
Date: Tue May 11 17:10:32 2021 -0400
remove relative paths
commit 9948669744b3281b1f9340e696913b7c131ab92d
Author: Alice D <alice@starwitch.productions>
Date: Tue May 11 16:46:24 2021 -0400
add source compress, add GPG signing
commit 38703f888541c7ae2256fcaaffe2fa858f0deda3
Author: Alice D <alice@starwitch.productions>
Date: Mon May 10 16:59:06 2021 -0400
release fixes
commit d6a811c50167697f15df130d41471348a1f58102
Author: Alice D <alice@starwitch.productions>
Date: Mon May 10 00:21:15 2021 -0400
fix logging paths for emscripten and switch
commit 140e64b62f065019cc7770fa2048a5608b3c14ef
Author: Alice D <alice@starwitch.productions>
Date: Mon May 10 00:19:11 2021 -0400
fix logging paths for emscripten and switch
commit a3d5b94f5b5f4af33131730091dae6a6e8643a3a
Author: Alice D <alice@starwitch.productions>
Date: Mon May 10 00:07:34 2021 -0400
fix tag var
commit eb537f5f62f7c796615e3ebc0b9752921a4b71ca
Author: Alice D <alice@starwitch.productions>
Date: Sun May 9 23:49:53 2021 -0400
ninja
commit 81f60e540f8a64d9e0af8598c0f79913d7ac7983
Author: Alice D <alice@starwitch.productions>
Date: Sun May 9 20:38:38 2021 -0400
add Switch release builds
commit 39f5403a8e4daa9c80272339d4fb076693e5c0a3
Author: Alice D <alice@starwitch.productions>
Date: Sun May 9 19:35:54 2021 -0400
modernize crossfile for switch
commit 464d7e28e3cead6b279df2956c5539c430219894
Author: Alice D <alice@starwitch.productions>
Date: Sun May 9 16:41:53 2021 -0400
use my own image lol 3
commit e7061f9ba2a1b9952931f693da2c826a95fb3987
Author: Alice D <alice@starwitch.productions>
Date: Sun May 9 16:40:19 2021 -0400
use my own image lol 2
commit 86abdee991bef25538f5b7596fce22edb50dc753
Author: Alice D <alice@starwitch.productions>
Date: Sun May 9 16:39:45 2021 -0400
use my own image lol
commit 196e84c5fc157b821277ccb3380870b33d7f0b3e
Author: Alice D <alice@starwitch.productions>
Date: Sun May 9 15:36:10 2021 -0400
add switch test build 12
commit 284c42c498d896640754792ce8a03d126b812446
Author: Alice D <alice@starwitch.productions>
Date: Sun May 9 15:34:03 2021 -0400
add switch test build 11
commit a1031bbe94902bd9dd98ec8784a290d1e5980943
Author: Alice D <alice@starwitch.productions>
Date: Sun May 9 15:32:51 2021 -0400
add switch test build 10
commit acc8a631f9ece695e3d59f55a9122fda661c56a6
Author: Alice D <alice@starwitch.productions>
Date: Sun May 9 15:32:06 2021 -0400
add switch test build 9
commit dab31a118a5d5ca2cdd06e398a2934ea026a3e3c
Author: Alice D <alice@starwitch.productions>
Date: Sun May 9 15:18:21 2021 -0400
add switch test build 8
commit 5cf25e70d5de4e8be966088e89a6854989061332
Author: Alice D <alice@starwitch.productions>
Date: Sun May 9 15:16:35 2021 -0400
add switch test build 8
commit b2b6237d21e77af737d5a2b3e7caeea30856f6db
Author: Alice D <alice@starwitch.productions>
Date: Sun May 9 15:14:32 2021 -0400
add switch test build 7
commit a3572de63495fbd2c195b23179295df523d0a7b2
Author: Alice D <alice@starwitch.productions>
Date: Sun May 9 15:03:47 2021 -0400
add switch test build 6
commit fb4f5665103522557ecd56f64d2025ac49ede0cb
Author: Alice D <alice@starwitch.productions>
Date: Sun May 9 15:00:42 2021 -0400
add switch test build 5
commit b734b245751445a0ddd7c87d3cb8eda1520bd2a2
Author: Alice D <alice@starwitch.productions>
Date: Sun May 9 14:58:50 2021 -0400
add switch test build 4
commit 373cb1b4ba02da312d4c634bfaadbdf9c0ec4028
Author: Alice D <alice@starwitch.productions>
Date: Sun May 9 14:56:38 2021 -0400
add switch test build 2
commit 9fb48d5faa36f10937badf8a40230f6672f6833f
Author: Alice D <alice@starwitch.productions>
Date: Sun May 9 14:54:02 2021 -0400
add switch test build
commit 4d6b553d3b8a67a9b1846611a6112359243e73e6
Author: Alice D <alice@starwitch.productions>
Date: Sun May 9 13:46:22 2021 -0400
clean up some names
commit ac9a4fb28312cd332ea704a196e7c8fc3e8da6d0
Author: Alice D <alice@starwitch.productions>
Date: Sun May 9 11:06:06 2021 -0400
revert to newer image
commit 9bb9cd1c142976d2d074ff46b3c325026a2efbb4
Author: Alice D <alice@starwitch.productions>
Date: Sat May 8 17:19:49 2021 -0400
use older version with llvm 11.0 to see if it fixes an x86 compile crash
commit f0494b30ccb42cd0825dc8fe4cac80997262a5b2
Author: Alice D <alice@starwitch.productions>
Date: Sat May 8 16:33:48 2021 -0400
fix some artifact paths, add tag to emscripten
commit 1a1f5cb56db04944feab1210a6df51a67d0108d0
Author: Alice D <alice@starwitch.productions>
Date: Sat May 8 16:17:03 2021 -0400
fix some typos
commit 5109a8690543919acf04db44cefbb1fe2b4aa546
Author: Alice D <alice@starwitch.productions>
Date: Sat May 8 16:08:04 2021 -0400
fix name
commit 82904ffeac1b3413a3b3c4f3f081c062532ad6d4
Author: Alice D <alice@starwitch.productions>
Date: Sat May 8 15:27:38 2021 -0400
add emscripten publish, and ANGLE repo pull
commit 5a12078946a24bf32dd924d8220630d67e727f28
Author: Alice D <alice@starwitch.productions>
Date: Fri May 7 20:11:26 2021 -0400
emscripten nightly 5
commit 28ad212f5d56f64bc7e1c27f634800064a9cf6dd
Author: Alice D <alice@starwitch.productions>
Date: Fri May 7 19:37:13 2021 -0400
emscripten nightly 4
commit 954ab3391ffd61149e4b3728ecf137dcd6c37efd
Author: Alice D <alice@starwitch.productions>
Date: Fri May 7 19:12:56 2021 -0400
emscripten nightly 3
commit 9330ba810cec1fd15d5f066199aa783f8b3f3f5c
Author: Alice D <alice@starwitch.productions>
Date: Fri May 7 18:50:35 2021 -0400
emscripten nightly 2
commit eae34ee5d8e0b271912d0d04ccae11fe0c3b4c0c
Author: Alice D <alice@starwitch.productions>
Date: Fri May 7 18:48:09 2021 -0400
emscripten nightly
commit 685121646d559a54487e6305e5f7acbbcd36f015
Author: Alice D <alice@starwitch.productions>
Date: Fri May 7 17:57:26 2021 -0400
fix style
commit 5673129d410887fcf940a6e35ed36f3cf81bd83a
Author: Alice D <alice@starwitch.productions>
Date: Fri May 7 17:55:58 2021 -0400
rename back to original
commit 01db06e6006a44bc62f834fe40b029fdb085b0e5
Author: Alice D <alice@starwitch.productions>
Date: Fri May 7 17:04:07 2021 -0400
emscripten build test 2
commit b2151f0f97bf7e1370ebc1ed7524f2941e794ed9
Author: Alice D <alice@starwitch.productions>
Date: Fri May 7 17:00:49 2021 -0400
emscripten build test
commit 8c2a29efc21f2f03d273a2ddd56eb7ea9716ea2c
Author: Alice D <alice@starwitch.productions>
Date: Fri May 7 16:21:46 2021 -0400
fix SDL2 werror
commit fc8c11cfe22eb5112ef0f9c8d053373e93f232bd
Author: Alice D <alice@starwitch.productions>
Date: Fri May 7 15:37:08 2021 -0400
fix machine files for basis_universal
commit f8c2e661ccb813a8222f4a87c0f9b8386bb3e865
Author: Alice D <alice@starwitch.productions>
Date: Fri May 7 15:06:28 2021 -0400
bump meson to 0.56.2
commit e7eed9330adad62be8334919a4a51df0e7e15588
Author: Alice D <alice@starwitch.productions>
Date: Fri May 7 13:27:41 2021 -0400
fix paths
commit d31b1f673b139d6c3ece6f3a96f3607ec19cc8a1
Author: Alice D <alice@starwitch.productions>
Date: Thu May 6 20:12:13 2021 -0400
fix race condition
commit c62df468a930f2b7bafbd5022ae5123f64b6b31f
Author: Alice D <alice@starwitch.productions>
Date: Thu May 6 19:05:09 2021 -0400
fix path
commit 33bd03589236b45afbf3cbe1dc47346133214c51
Author: Alice D <alice@starwitch.productions>
Date: Thu May 6 18:50:50 2021 -0400
???
commit d9acdce134354d390283b15926d7924c705b948e
Author: Alice D <alice@starwitch.productions>
Date: Sat May 1 16:11:23 2021 -0400
version for testing
commit f9ba7ecf124881168714326926bb091d4f201af5
Author: Alice D <alice@starwitch.productions>
Date: Fri May 7 12:53:28 2021 -0400
fix paths
commit 981f4022b2158ada0d76e938a7dc13bcf7192635
Author: Alice D <alice@starwitch.productions>
Date: Fri May 7 12:29:18 2021 -0400
hopefully fixing emscripten by moving to Linux build
commit 6abb7cc524ac07ac421588ea9b7a77ec1a8f9471
Author: Alice D <alice@starwitch.productions>
Date: Thu May 6 17:53:31 2021 -0400
fix path for file_packager
commit c565173e7987b9745cecc158a871e573774612e8
Author: Alice D <alice@starwitch.productions>
Date: Thu May 6 17:34:33 2021 -0400
native -> cross
commit 4b19afa3ee4fd01a33bc523c2a7b1dffcf9c873b
Author: Alice D <alice@starwitch.productions>
Date: Thu May 6 17:32:24 2021 -0400
more emscripten changes
commit a1530a28abaff33cdcd509acc83ad815cabbbbfe
Author: Alice D <alice@starwitch.productions>
Date: Thu May 6 17:05:05 2021 -0400
move to latest for emscripten
commit 4af45358e51c27ce29e1b8fff3e7d6c2ac472bf2
Author: Alice D <alice@starwitch.productions>
Date: Thu May 6 16:09:28 2021 -0400
add emscripten CI, add labels to CI jobs
commit 27b7c2c412661fca20715b6789e1be9fb72d0bd0
Author: Alice D <alice@starwitch.productions>
Date: Thu May 6 13:59:43 2021 -0400
clean up machine files
commit c8172ab4b0a79e3ec2b7e07a9fb358774d9eeb80
Author: Alice D <alice@starwitch.productions>
Date: Mon May 3 15:43:32 2021 -0400
stashing emscripten machine file
commit 3c61741626a6bb2c9a302af2782bf6306082f194
Author: Alice D <alice@starwitch.productions>
Date: Sat May 1 16:25:32 2021 -0400
change macos version, fix windows paths for .zip
commit 305e42a01afd46c2ab8b9453a5ae74b8064de285
Author: Alice D <alice@starwitch.productions>
Date: Sat May 1 16:08:49 2021 -0400
add experimental macOS Apple Silicon build/release
commit 75fb7151bc9e3053bd195f7197a0a8af6fc11134
Author: Alice D <alice@starwitch.productions>
Date: Fri Apr 30 19:57:47 2021 -0400
add windows x86 build add, .zip packaging, tune macOS build
commit 58f3e734b9fc2b5163e80ab7b46f1a391dd3f8bb
Author: Alice D <alice@starwitch.productions>
Date: Fri Apr 30 00:34:50 2021 -0400
delete dockerfiles, moved to different PR
squashing commits
fix compile issue for x86 windows builds
re-enable x86 builds
fix markdown path [skip ci]
fix sha256sum extensions [skip ci]
change publish pipeline name [skip ci]
re-enable ARM64 macos builds
revert CI tests in forked branch, wait until merged in main repo
remove dockerignore
bump emsdk to 2.0.21
remove emscripten nightly, moving to another PR [skip ci]
fix merge issue
preemptive PR changes, make it more readable
improve GHP example
move to project-owned Docker image [skip ci]
change pipeline name [skip ci]
* fix wildcards for branches [skip ci]
* fetch tags manually
* fix github checkout issue
* remove unncessary match [skip ci]
* initial PR changes to make things more streamlined
* one line change to test builds
more tag shenanigans
remove unneccessary step
modernize
add release_files
add release_files
fix builds (hopefully)
fix builds (hopefully 2)
* fix typo
* make paths more explicit
* fixes
* add token
* add ref
* fix ref
* fix emscripten tests [skip ci]
* bump switch image
* slight fixes to scripts
* fix -rc/-beta/etc tags in version script
* add additional comments
* typos and missing help
* move publish.yml to own PR, improve release.yml
* remove unneccessary python module
* Revert "remove unneccessary python module"
This reverts commit e7c3d6a5bcdcd15e94d91b79a2139221777ce4b6.
* rebase and job name cleanup
* fix merging
* fix windows building issues
* cleanup
* bump ARM64 runner to macos-11
* bump Switch docker image version, and emsdk version
* change path to ANGLE libraries
* macos-11.0 -> macos-11
* clean up PR stuff
* fix emscripten error
* update macos script to handle universal binaries as well as releases
* update for macos universal
* update for macos universal 2
* MacOS universal release build
* PR review
* more smaller fixes
* typo
* more small fix
* small fixes
* small fixes 2
* PR review and refactoring
* typos
* python3.6 fix
* use custom Ubuntu 20.04/llvm-mingw image
* remove dead meson options
* final touchups
* CI test uses new image, also fix Emscripten builds again
* updating and allowing for custom refs
* squashing commits
* get rid of version-guessing kludge
* PR review
Moved quantization out of the draw code. The laser is now quantized once
per frame, and the segment data is used for both collisions and
rendering. Player motion is now accounted for as well, preventing
phasing through thin lasers. The overall result is more precise *and*
faster collision detection.
* lasers: new SDF-based renderer (WIP)
* lasers: tweak sdf_apply shader
* lasers: fix incorrect rendering at 'unlucky' resolutions
* lasers: optimize rendering of multiple lasers
Try to coalesce render passes as much as possible
* lasers: fix warning
* lasers: move rendering into a new file
* lasers: correct "time" coordinate mapping for texturing
* lasers: wrote a novel about laser rendering [skip ci]
* lasers: fux tpyo
* remove references to old laser shape shaders
* lasers: fix some rendering edge cases
* Split replay.c into multiple files under replay/; improve logical
separation of replay-related code.
* Separate replay playback state from data.
* Get rid of global static replay struct and avoid unnecessary replay
copying.
* Replay playback and recording are now independent and may occur
simultaneously, although this functionality is not yet exposed. This
enables replay "re-recording" while synthesizing new desync check
events, possibly at a different rate from the original replay.
* Rate of recorded desync check events can now be controlled with the
TAISEI_REPLAY_DESYNC_CHECK_FREQUENCY environment variable. The default
value is 300 as before.
* Probably other stuff I forgot about.
* WIP cutscenes
* cutscene tweaks
* cutscene: erase background drawing under text
* Make text outlines thicker
* Prepare an interface for adding new cutscenes
* Basic progress tracking for cutscenes
* cutscene: support specifying scene name and BGM
* cutscene: exit with transition after scene ends
* Implement --cutscene ID and --list-cutscenes CLI flags
* fix progress_write_cmd_unlock_cutscenes
* Play intro cutscene before entering main menu for the first time
Also added --intro parameter in dev builds to force playing the intro
cutscene
* Add intro cutscene
* cutscenes: update opening/01 scene
* add Reimu Good End
* remove Bonus Data
* split up a bit of dialogue, revert an image change in intro
* small typo
* most cutscenes complete
* smartquotify
* finish Extra intros
* new cutscenes routed into main game
* fix ENDING_ID
* rough 'mediaroom' menu
* fix cutscene menu crash
* derp
* PR changes
* fixing imports
* more PR fixes
* PR fixes, including updating the script to #255
* add in newlines for readability
Co-authored-by: Alice D <alice@starwitch.productions>
* Add red fairies; tweaks to blue fairies and circles
* Add more fairies and a simple enemy archetype system
Note that existing stages not utilizing the new enemy spawning system
will have a visual regression - fairies will not have their magic
circles and particle effects visible. These are no longer implemented by
the enemy visual rules and require additional setup from the new spawner
wrappers. All stages should be converted to the new system.
Also improved old fairy sprites
* enemy_classes: rebalance HP
* enemy_classes: add EnemySpawner typedef
* items: add ITEMS() shortcut macro for use with enemy spawners
* WIP compressed textures, swizzles, sRGB sampling, ...
* refactor texture type info & fix random bugs
* fix preprocessing of sRGB textures
* handle y-flipped basis textures
* glcommon: better WebGL compat for compressed format detection
* missed WEBGL_compressed_texture_pvrtc
* implement compressed texture xcoding and uploading
* Add basis_universal submodule
* Reorganize texture loader code
Clean up some code
Isolate Basis Universal loader into a separate module
* Add wrapper script for encoding .basis textures
* basisu: honor custom metadata written by the mkbasis.py script
* mkbasis.py: add --incredibly-slow and --dry-run
* Move pixmap code from util/ to pixmap/
* Add an on-disk transcode cache for basis textures to speed up loads
* Compress texture cache with zlib
* Use readable format names for basisu cache filenames
* basisu: mip bias test code
* basisu: small caching cleanup
* add TAISEI_BASISU_MIP_BIAS env variable
* Improve OpenGL format matching heuristics
* Document considerations for compressed format priority
* Remove dead code
* Enable two forgotten formats, BC3_RGBA and ATC_RGBA
Also prefer BC7 over BC1/BC3
* Recognize GL_ANGLE_compressed_texture_etc for ETC2 textures
* Default depth buffers to 24-bit; remove ANGLE hack
* Fix glcommon_check_extension for GLES2/legacy gl
* Add renderer feature bit for texture swizzle masks
* glcommon: Fixup internal formats for GLES2
Sized internal formats are not allowed in GLES2
* Fix emscripten compile errors
* Update basis_universal
* remove more dead code
* revert irrelevant stage4 change
* shut up UBSan
* basisu: shut up some debug spam
* Add normalmap sampling helper to util.glslh
* basisu: add a gray-alpha mode
* mkbasis.py: Abort if image dimansions aren't multiples of 4
* Add basic Basis Universal encoding documentation (WIP)
* doc/basisu: Add paragraph about modes; minor tweaks
* basisu: workarounds for GL texture size requirements
* gles20: fix uncompressed sRGB formats
* Partial workaround for missing swizzles in gles2 and webgl
* remove invalid assertion
* New renderer API to expose glDrawBuffers-like functionality
* stagedraw: disable all color outputs for copy_depth pass
required for WebGL compatibility
* support GL_ANGLE_request_extension
* emscripten: include *.basis in gfx package
Also fix a potential problem when more than one .pkgdir is used to
construct emscripten packages
* Don't rely on emscripten runtime to enable webgl extensions
This replaces SDL_mixer with an internal streaming and mixing system,
relying only on basic SDL audio support. It's also a partial refactor of
the audio API, most notably BGM-related. The BGM metadata resource type
is gone, as well as the `.bgm` files. The metadata is now stored inside
the `.opus` files directly, using standard Opus tags.