Commit graph

2329 commits

Author SHA1 Message Date
Andrei Alexeyev
5b0b676c0e
INVOKE_TASK_DELAYED; CANCEL_TASK_WHEN; event robustness fixes 2020-03-04 21:50:51 +02:00
Andrei Alexeyev
156d8147b1
Add a way to define extern tasks (to reference across files) 2020-03-04 21:50:51 +02:00
Andrei Alexeyev
13b5e33b0c
add 'killed' event for projectiles 2020-03-04 21:50:51 +02:00
Andrei Alexeyev
2a34f7bad4
generalize common bullet motion rules; add some math helpers 2020-03-04 21:50:50 +02:00
Andrei Alexeyev
439d8ea339
add kill_projectile() as a kind-of ACTION_DESTROY substitute 2020-03-04 21:50:50 +02:00
Andrei Alexeyev
3f99739d62
coroutines: task finalizers; fix enemy death event 2020-03-04 21:50:50 +02:00
Andrei Alexeyev
9fe54e0335
experimental event system for coroutine-based stages 2020-03-04 21:50:50 +02:00
Andrei Alexeyev
1579082e30
"Boxed" entities; facility to bind tasks to entity lifetime 2020-03-04 21:50:50 +02:00
Andrei Alexeyev
6a8ed64adb
make enemy logic rule optional 2020-03-04 21:50:50 +02:00
Andrei Alexeyev
bdef62d7f4
Initial coroutine/task system implementation 2020-03-04 21:50:22 +02:00
Kasymov Grigorii
6ba4d4fa6b
move sound resume code to js for emscripten build (#195) 2020-03-02 10:54:30 +02:00
Andrei Alexeyev
8aad971114
clear up some ancient 3D confusion 2020-02-22 08:56:41 +02:00
Andrei Alexeyev
fadd6de76d
refactor some aspects of path config, ANGLE libs in particular 2020-02-21 00:36:40 +02:00
Alice
0b29dd473b
OpenGL ES 3.0/ANGLE support on macOS (#190)
* fixing OpenGL ES 3.0 support in macOS

* make GLES libraries loaded via buildconf vars

* fix relative install paths for macOS

* fix indenting, add comments

* fix indentation for REAL this time (thanks editorconfig)
2020-02-20 04:16:28 +02:00
Andrei Alexeyev
5d02fa4e47
webgl: enable WEBGL_debug_renderer_info 2020-02-18 06:00:29 +02:00
Andrei Alexeyev
58f7dc7d7b
Workaround for macOS AMD performance issues (#188)
fixes #182
2020-02-18 05:56:36 +02:00
Andrei Alexeyev
f4a3207f61
support GL_ANGLE_base_vertex_base_instance 2020-02-15 20:58:15 +02:00
Andrei Alexeyev
7474ff3a25
OpenGL ES 2.0 support (#187)
* WIP gles2 compat

* More gles2 compat. Playable with ANGLE now, with some rendering bugs.

* fix matrix mult. order in generic laser shader

* gles20: fix indexed rendering

* Update docs about gles20 status

* fix formatting
2020-02-15 19:45:09 +02:00
laochailan
44bd09bada
linear3dpos saved a multiplication and draw nearest to farthest 2020-02-01 08:55:37 +01:00
laochailan
7e6b98fe4f
refactored linear3dpos 2020-02-01 08:37:36 +01:00
Andrei Alexeyev
3bd884cd1b
Stage3D improvements
* More consistent function names
* No need to register models, just pass what you want to draw to
stage3d_draw()
* Optimize vector math
2020-02-01 03:24:17 +02:00
makise-homura
f9f1f41991 Fix for strange behavior of elbrus compiler regarding __auto_type
On `__auto_type x = y`, it creates x as array rather than pointer
if y is array, while gcc always makes x a pointer.
2020-01-24 02:33:14 +03:00
Andrei Alexeyev
1cca9173b8
renderer: expose half-float and depth{24,32} pixel formats 2020-01-16 21:58:25 +02:00
Andrei Alexeyev
b8c2755ce1
attempt to fix more feature-test-macro portability issues 2019-12-18 15:38:00 +02:00
Andrei Alexeyev
6834796262
emscripten compatibility fixes 2019-12-18 15:33:36 +02:00
Alice
030fae87f5 fix macOS compile issue for timespec_get (#183) 2019-12-12 23:02:06 +02:00
Andrei Alexeyev
5d4155514e
fix debug overlay not drawn when global postprocessing is active 2019-12-05 22:13:38 +02:00
Andrei Alexeyev
911f42b23a
fix memleak with TAISEI_PRELOAD_SHADERS=1 2019-11-26 12:06:24 +02:00
Andrei Alexeyev
80b1026d08
Don't redefine standard complex macro; use a new cmplx typedef
This also introduces `float32`, `float64`, and `real` typedefs to be
used in place of `float` and `double` later. `real` is for game code and
other places where we don't particularly care about the precision and
format of the underlying type, and is currently defined to `double`.
`float32` and `float64` should replace `float` and `double` respectively
2019-11-22 05:38:48 +02:00
Andrei Alexeyev
78191b3015
Emscripten compat fixups 2019-11-19 07:55:35 +02:00
Andrei Alexeyev
6f2231c999
shut up a debug print in rectpack 2019-11-08 21:07:02 +02:00
Andrei Alexeyev
6a72d4a637
Add env variable TAISEI_SDL_LOG (enables SDL log at given priority) 2019-11-08 21:05:40 +02:00
Andrei Alexeyev
383234efe7
random cleanup 2019-11-08 20:53:43 +02:00
Andrei Alexeyev
a6bf08a5bf
Remove Lalasa's endings as well
Follow-up for #179; forgot about these in the previous commit.
2019-10-31 15:27:03 +02:00
Andrei Alexeyev
49dcd7c8d7
Remove Lalasa's contributions (by request)
This replaces the story and dialogue contents with stubs, as well as
removes Lalasa's entry from the credits, by her own request.

Fixes #179
2019-10-31 13:04:30 +02:00
Andrei Alexeyev
8a42813951
fix warning due to enum type being unsigned 2019-10-15 09:58:28 +03:00
Andrei Alexeyev
9d3bf87559
Refactor matrix stack API to get rid of matrix mode (#177)
This replaces the r_mat_foo functions with specialized r_mat_{mv,tex,proj}_foo counterparts that operate explicitly on the modelview, texture, and projection matrix stacks respectively.
2019-10-12 15:02:15 +03:00
Andrei Alexeyev
fa5757191c
fix messed up laser blurring at max quality 2019-10-04 15:01:46 +03:00
Andrei Alexeyev
b14b8493d4
Optimize text drawing
This adds a lower-level sprite batching API intended to reduce overhead
of bulk sprite submissions when it is known that no pipeline state needs
to be changed in-between individual sprites.
2019-10-03 02:49:10 +03:00
Andrei Alexeyev
279114cbd5
add global FPS display in developer mode 2019-10-03 01:23:46 +03:00
Andrei Alexeyev
58f31a1d03
replace get_option('debug') usage with is_debug_build 2019-10-01 07:19:33 +03:00
Andrei Alexeyev
436339a38d
Fix meson 0.48.0 compat; require >=0.48.0 and recommend >=0.49.0 2019-09-29 22:02:38 +03:00
Andrei Alexeyev
8bdaa529df
fix for platforms where alignof(max_align_t) < 16
i686 windows in particular
2019-09-24 22:59:12 +03:00
Andrei Alexeyev
f79f8574a9
update FOSS acknowledgements 2019-09-24 15:58:49 +03:00
Andrei Alexeyev
6040d1f2c4
optimize MarisaA laser collision to not spam malloc
More importantly, this sidesteps a miscompilation that happens at least
with GCC9+gold -O3 -flto, that causes the lasers to turn enemies
permanently invulnerable.
2019-09-22 22:46:06 +03:00
Andrei Alexeyev
81ce827cd2
windows: don't link to comctl32 2019-09-22 00:26:21 +03:00
Andrei Alexeyev
7fe3f8ff90
windows: detect intel's shitty driver and fall back to ANGLE 2019-09-21 16:46:22 +03:00
Andrei Alexeyev
1fdc00fc39
fix an #include portability issue 2019-09-19 18:32:15 +03:00
Andrei Alexeyev
af0bf87513
Share spritesheets between fonts 2019-09-17 14:35:29 +03:00
Andrei Alexeyev
6a2c976aaa
add deallocation support for rectpack, with partial defragmentation 2019-09-17 13:53:29 +03:00