Commit graph

4080 commits

Author SHA1 Message Date
Andrei Alexeyev
2fdf9baf36
renderer/api: remove dead struct 2024-08-30 11:52:47 +02:00
Andrei Alexeyev
fa2c13d116
util/compat: workaround for clangd in gcc-based build dirs 2024-08-30 11:52:47 +02:00
Andrei Alexeyev
d676808ad1
memory/arena: add ARENA_ALLOC series of macros 2024-08-30 11:52:47 +02:00
Andrei Alexeyev
a15b193c0b
memory/arena: add marena_memdup() and marena_strdup() 2024-08-30 11:52:47 +02:00
Andrei Alexeyev
1f05199456
memory/arena: add marena_alloc_array_aligned() 2024-08-30 11:52:47 +02:00
Andrei Alexeyev
b48e4e7714
build,renderer: dispose of gles20's rotting corpse 2024-08-30 11:52:47 +02:00
Andrei Alexeyev
6a84f1aee3
shaderlib/lang_spirv_aux: support SPIR-V output in spirv_transpile 2024-08-30 11:52:47 +02:00
Andrei Alexeyev
b7025a4d4c
util/stringops: strappend: make src param const 2024-08-30 11:52:47 +02:00
Andrei Alexeyev
2afc7f90ec
scripts: yeet pull and checkout 2024-08-30 11:52:47 +02:00
4226739869
scripts: optimize-img.sh: msg(): process arguments as a single string 2024-08-30 11:52:44 +02:00
c7df571a91
scripts: optimize-img.sh: simplify 1>&2
Simplify `1>&2` to `>&2`
2024-08-30 11:52:42 +02:00
d69b5ab55a
scripts: all: command read: use -r flag
Use the `-r` option with `read` to prevent backslash escaping and preserve
literal backslashes in input strings
2024-08-30 11:52:37 +02:00
64744d092b
scripts: all: put double quotes where they're needed
Put double quotation marks where they're needed to prevent word splitting of
strings and paths
2024-08-30 11:52:34 +02:00
8365529eba
scripts: all: guard all echo uses
Use `printf --` instead
2024-08-30 11:52:30 +02:00
48a6f33138
scripts: /checkout, /pull: use POSIX shell shebang
Use POSIX shell shebang, since there are no bashisms in the scripts
2024-08-30 11:52:27 +02:00
Andrei Alexeyev
551c82b4f0
util: add portable sort_r() 2024-06-16 22:33:38 +02:00
Andrei Alexeyev
c1082d0f8d
resources: replace stage5 demo due to desync 2024-06-16 20:34:45 +02:00
Andrei Alexeyev
3dc8624265
memory/mempool: fix warning 2024-06-15 09:31:14 +02:00
Andrei Alexeyev
0fe465522f
menu: improve grouping in spell practice and stage select 2024-06-14 22:35:24 +02:00
Andrei Alexeyev
bad453ce61
resources: replace stg3 reimuA hard demo due to desync 2024-06-14 21:15:21 +02:00
Andrei Alexeyev
a8322f5e1d
util/rectpack: refactor to use standard mempools 2024-06-05 23:53:30 +02:00
Andrei Alexeyev
f9c2748fae
memory/mempool: pass arena pointer to acquire() instead of storing in struct 2024-06-05 22:07:17 +02:00
Andrei Alexeyev
b81f338d2d
stageobjects: add type-based macros for acquiring from/releasing into the correct pool 2024-06-05 21:58:58 +02:00
Andrei Alexeyev
13ace0e5c0
memory/mempool: refactor to avoid storing object size and alignment in struct
Works similarly to DYNAMMIC_ARRAY(type)
2024-06-05 21:16:02 +02:00
Andrei Alexeyev
05168ac2d7
memory/mempool: rename from objectpool 2024-06-05 18:35:08 +02:00
Andrei Alexeyev
fc54f3f8ce
global,mainmenu: enable Quit if quitting is allowed in kiosk mode 2024-06-04 16:31:46 +02:00
Andrei Alexeyev
139ac03d5c
config: change default bomb and surge gamepad buttons
LT and RT respectively
2024-06-04 16:17:26 +02:00
Andrei Alexeyev
7548e4892d
gamepad: direction snapping; more flexible configuration options
- The free/restricted axis distinction is gone; the joystick always
  operates in "free" mode.
- Added direction snapping functionality to help aid exact movement in
  cardinal and/or diagonal directions. The snapping angle can be
  adjusted from 0% (disabled) to 100% (similar to the old "restricted"
  mode). The snapping angle can also be biased towards cardinals or
  diagonals.
- When the maximum zone is less than or equals dead zone, moving
  the character will always move at maximum speed (as in the old
  "restricted" mode).
- Most of these settings are now visualized in the options menu and can
  be tested there.
2024-05-27 19:23:59 +02:00
Andrei Alexeyev
d288f2bd27
shaders: don't use textureGrad() in powersurge_effect
Apparently it has bad performance at least on some intel iGPUs (my
laptop), and it does nothing visually here.
2024-05-22 16:25:20 +02:00
Andrei Alexeyev
149a261389
lasers: handle lasers that only have a single point 2024-05-22 16:25:19 +02:00
Andrei Alexeyev
8189f8daa6
lasers: improve degenerate sample rejection during quantization
Fixes some issues with curves that have degenerate samples at the start,
and is more efficient for curves with lots of degenerate samples in
general.
2024-05-19 06:54:30 +02:00
Andrei Alexeyev
8b37d1cbf2
src: the great #include massacre of 2024 2024-05-17 14:11:48 +02:00
Andrei Alexeyev
be7905d6a3
src: run upkeep 2024-05-17 04:58:47 +02:00
Andrei Alexeyev
12fde81651
scripts/upkeep: remove taisei.h include from non-header files
It's redundant because every local header pulls it in anyway, and it
also interacts badly with clangd's automatic include insertion
2024-05-17 04:55:13 +02:00
Andrei Alexeyev
b6439b1319
scripts/upkeep: auto-update year on default copyrights 2024-05-17 04:55:13 +02:00
Andrei Alexeyev
0fc68b5778
util/consideredharmful: work around some false positives in clang 18 2024-05-16 22:24:43 +02:00
Andrei Alexeyev
76886a3f44
src/memory: remove irrelevant #include 2024-05-16 22:24:18 +02:00
Andrei Alexeyev
84a909bc8c
lasers: remove legacy compat glue 2024-05-15 21:55:42 +02:00
Andrei Alexeyev
e7c77216d2
misc/ci: enable building tests 2024-05-14 04:37:11 +02:00
Andrei Alexeyev
1ca164eea4
test/renderer: add a basic triangle "hello world" example 2024-05-14 04:37:11 +02:00
Andrei Alexeyev
0ea5f73c3c
build: add basic infra for building tests 2024-05-14 04:37:11 +02:00
Andrei Alexeyev
1914703edf
build: put most sources except main.c into a static lib
Allows building other executables (tests, tools like tsrtool, etc.) that
make use of taisei code in the future.
2024-05-14 04:37:11 +02:00
Andrei Alexeyev
b00f74c6f2
vfs/public: make APIs fail safely if VFS is not initialized 2024-05-13 03:31:48 +02:00
Andrei Alexeyev
dfa615bb77
thread: safely return NULL from thread_create() if threads not initialized 2024-05-13 03:30:19 +02:00
Andrei Alexeyev
83dfe8d5fa
renderer/api: init matrix and state stacks early 2024-05-13 03:29:43 +02:00
Andrei Alexeyev
7ed253f5c6
coroutine/cotask: allow cotask_active() when coroutine system is uninitialized 2024-05-13 03:28:41 +02:00
Andrei Alexeyev
4072d31ffa
lasers/rules: make create_dynamic_laser return MoveParams* in an out-parameter
No need to mess with LaserRuleDynamicData and LaserRuleDynamicTaskData
2024-05-10 01:31:39 +02:00
Andrei Alexeyev
07a0bdf558
lasers: compute segment visibility correctly
The previous naive check had some false negatives
2024-05-09 05:11:17 +02:00
Andrei Alexeyev
e518c7a87d
lasers: support lasers with abrupt angle changes
This requires some look-ahead, so quantize_lasers will now compute all
samples ahead of time before starting to build segments. The samples are
held in a global dynamic array to minimize reallocations.
2024-05-09 05:11:17 +02:00
Andrei Alexeyev
92183e7655
lasers: try to change the quantization sampling step as little as possible 2024-05-08 23:10:23 +02:00