Commit graph

3797 commits

Author SHA1 Message Date
Stephen Gutekanst
b09b462ef1 src/sysjs: move sysjs@v0 to here
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-06-02 09:34:39 -07:00
Stephen Gutekanst
c06dc261c8 dev: update Zig nomination issue template
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-06-02 09:01:29 -07:00
Stephen Gutekanst
ffd03c3b0b remove examples that require model3d
See hexops/mach#969

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-06-02 09:01:09 -07:00
Stephen Gutekanst
13ff5097db module: fix potential archetype hash collision lookup issues
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-05-26 18:04:08 -07:00
Stephen Gutekanst
b6a7296251 sysaudio: examples: add support for 8ch output
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-05-26 13:00:29 -07:00
Stephen Gutekanst
aa0ec4ba5e module: remove archetypeByID, improve "entity does not exist" error cases
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-05-24 13:42:29 -07:00
Stephen Gutekanst
f4f89af8b9 gfx: Sprite/Text: add ability to specify view*projection matrix
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-05-24 07:17:14 -07:00
Stephen Gutekanst
b261a8177f gfx: Sprite: sort/draw sprites back-to-front always
Prior to this change sprite draw order was not something we could specify,
now we can by changing the Z value of sprites (sprites further away / with
greater Z values are drawn first), which is obviously desirable for layering
and alpha blending purposes.

The implementation here is rather naive: we sort all sprites each frame based
on their Z value; but its performance is quite good with ~half a million sprites
and so is good enough for now.

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-05-22 18:13:26 -07:00
Stephen Gutekanst
1237858359 math: fix projection2D bug with reverse-z
This went unnoticed because our test had near=-100 and far=100 which
is pretty uncommonly balanced, added a new test near=0 far=100 to test
for this.

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-05-22 18:12:34 -07:00
Stephen Gutekanst
a6157642b8 Audio: fix accounting for remainder of sample buffer
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-05-22 17:35:22 -07:00
Stephen Gutekanst
4ac222b36c gfx: Sprite: minor shader simplification
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-05-22 08:24:40 -07:00
Stephen Gutekanst
031164d9b5 gfx: Text: add ability to change font color
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-05-22 08:22:25 -07:00
Stephen Gutekanst
f79351ed59 wip
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-05-22 08:21:33 -07:00
Stephen Gutekanst
18e32ee6bf build: use ReleaseFast for opus decoding
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-05-18 17:06:20 +02:00
Stephen Gutekanst
205a1f33db Core: support configuring window before it opens
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-05-14 00:12:26 +02:00
Stephen Gutekanst
122a1ea9a7 {gfx,examples}: simplify text rendering API a bit
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-05-14 00:12:26 +02:00
Stephen Gutekanst
393320aa68 build: do not force install/build of core- examples
CoreApp users can call b.installArtifact(app.compile) themselves if
they desire that behavior

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-05-14 00:12:26 +02:00
Ali Chraghi
182c6a9180 math: collision module 2024-05-14 00:07:47 +02:00
Ali Chraghi
6e5c68c1c7 Audio: don't deinit the player 2024-05-13 14:54:51 +02:00
Ali Chraghi
39bf303057 Audio: add volume component 2024-05-13 14:54:51 +02:00
Stephen Gutekanst
9a059d6f8c Audio: fix unlock
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-05-13 07:57:38 +02:00
Stephen Gutekanst
194fe8a451 Audio: fix potential exit deadlock
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-05-13 07:54:14 +02:00
Stephen Gutekanst
36f21d5c4d Audio: correct deinit race across threads
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-05-13 04:20:16 +02:00
Ali Chraghi
cadaa3e85b sysaudio: revive i24 samples 2024-05-12 07:34:25 -07:00
Andrew Gutekanst
73a1ea4650 sysaudio: fix crash on windows without a mic/capture device 2024-05-12 07:29:13 -07:00
Andrew Gutekanst
f080a1c31e sysaudio: fix wasapi wave format selection 2024-05-12 07:29:13 -07:00
Stephen Gutekanst
92086d8d66 examples: add hardware-check
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-05-12 16:27:52 +02:00
Stephen Gutekanst
3c778816d9 examples: improve play-opus code quality a bit
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-05-12 16:23:38 +02:00
Stephen Gutekanst
6e4105d8e2 math: add lerp
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-05-12 14:26:46 +02:00
Stephen Gutekanst
ca27f1e263 Core: add window size in virtual pixels, update info each frame
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-05-12 14:26:34 +02:00
Stephen Gutekanst
07e61fde30 module: bump eval branch quota on ComponentName
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-05-12 14:25:59 +02:00
Stephen Gutekanst
0200bed7ec examples: simplify dependencies, mach depends on Opus
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-05-11 14:35:54 -07:00
Stephen Gutekanst
8578613adc module: fix ECS alignment issues caught only on Windows
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-05-11 14:22:48 -07:00
Stephen Gutekanst
10f35a49ef module: fix swap removal bug, improve code clarity
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-05-09 17:37:17 -07:00
Stephen Gutekanst
22ac26b57e module: rename events -> systems, remove 'event arguments'
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-05-08 13:39:07 -07:00
Stephen Gutekanst
83d436ffa4 module: remove "global events" concept
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-05-08 13:39:07 -07:00
Stephen Gutekanst
8d669537dc module: make adding/removing components/entities legal during query iteration
This makes adding/removing components and entities legal during the execution
of a query iterator. Previously, this could invalidate the iterator slices at
worst leading to UB. This fixes the issue by deferring all such actions until
after no queries are pending (i.e. all iterators have finished running)

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-05-07 23:40:56 -07:00
Stephen Gutekanst
27754cdf1f gfx: add TODO for SpritePipeline multi-texturing
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-05-07 23:40:56 -07:00
Stephen Gutekanst
89ad7fce24 examples: sprite: fix release() bugs caught by sysgpu
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-05-07 23:40:56 -07:00
Stephen Gutekanst
5ec9f89821 examples: text: correctly release frame_render_pass
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-05-07 23:40:56 -07:00
Stephen Gutekanst
786d0d50b1 examples: glyphs: slightly improve release() logic
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-05-07 23:40:56 -07:00
Stephen Gutekanst
d8e0787c7e examples: play-opus: release render_pass properly
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-05-07 23:40:56 -07:00
Stephen Gutekanst
3d4888f430 examples: glyphs: fix double-free of texture
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-05-07 23:40:56 -07:00
Stephen Gutekanst
6feaad630e {examples,Audio}: optimize needless setComponent calls away
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-05-07 23:40:56 -07:00
Stephen Gutekanst
57767c2f9f module: remove deprecated query API
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-05-07 23:40:56 -07:00
Stephen Gutekanst
b5b094642a gfx: Text: remove __entities internal usage
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-05-07 23:40:56 -07:00
Stephen Gutekanst
e041bc65ea gfx: Text: cache loaded font at least
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-05-07 23:40:56 -07:00
Stephen Gutekanst
bd655828e3 all: use new mach.Entity.Mod query API
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-05-07 23:40:56 -07:00
Stephen Gutekanst
541ce9e7c0 all: rename mach.Entity.Mod -> mach.Entities.Mod
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-05-07 23:40:56 -07:00
Stephen Gutekanst
11ebce62a3 module: rename Entities -> Database
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-05-07 23:40:56 -07:00