Commit graph

86 commits

Author SHA1 Message Date
Stephen Gutekanst
f75d9b95fe obj: add MPSC lock-free FIFO queue with atomic batch-take support
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-11-23 21:20:04 -07:00
Stephen Gutekanst
9d134dc72d module: object recycling
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-11-23 21:20:04 -07:00
Stephen Gutekanst
8054d03b4d unify mach.Call and mach.Runner into one type
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-11-23 21:20:04 -07:00
Stephen Gutekanst
0e12857154 examples/core: building without ECS
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-11-23 21:20:04 -07:00
Stephen Gutekanst
a62d4fbf8e add mach module doc comment
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-08-25 14:26:34 -07:00
Stephen Gutekanst
133c89638b all: move mach.Timer, core Timer/Frequency to mach.time module
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-08-25 14:24:09 -07:00
Stephen Gutekanst
301a8df8f9 remove unmaintained WASM support
Same reasoning as #1254

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-08-25 13:35:16 -07:00
Stephen Gutekanst
5ae7e156cb build: fix building just sysaudio standalone
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-08-25 13:31:43 -07:00
Stephen Gutekanst
642cc9b7f7 make it clear how to use module system without mach.Core (remove mach.App)
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-08-24 22:33:15 -07:00
Stephen Gutekanst
bfa3b069f7 revert bad entrypoint API design changes
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-08-23 23:03:54 -07:00
Stephen Gutekanst
66e56f037b
initial macOS backend (#1249)
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
Co-authored-by: Michael Bradshaw <github@mjb.io>
2024-08-18 16:45:37 -07:00
Ali Cheraghi
0023ab14fb {vulkan,examples}: fix descriptor set bug 2024-07-13 09:06:35 -07:00
Ali Cheraghi
266e7a548b core: refactor 2024-07-13 09:06:35 -07:00
Stephen Gutekanst
98801a258e remove Dawn / WebGPU support in favor of sysgpu
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-07-07 22:08:16 -07:00
Stephen Gutekanst
316f2354d1 mach: add centralized is_debug flag
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-06-16 10:05:08 -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
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
65e2168b9f module: injected mach.Entity.Mod for global entity operations
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-05-07 23:40:56 -07:00
Stephen Gutekanst
69ff2e027f all: rename mod.entities -> mod.__entities (private)
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-05-07 23:40:56 -07:00
Stephen Gutekanst
95c9ae5278 module: support merging module lists
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-05-06 14:03:57 -07:00
Stephen Gutekanst
33bfdee520 {module,Audio}: ability to store event name and send it later
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-04-29 20:17:26 -07:00
Stephen Gutekanst
7a1efdaa69 core: cleanup sysgpu feature flag logic
* `@import("mach").core.gpu` has been renamed to `@import("mach").gpu`
* `pub const SYSGPUInterface` now has a default value (i.e. you do not need to write it in your main.zig, if you were.)
* You can now check `if (comptime mach.use_sysgpu)` for any conditional code you might have that should only run with sysgpu.

This (old):

```
pub const mach_core_options = core.ComptimeOptions{
    .use_wgpu = false,
    .use_sysgpu = true,
};
```

Has been replaced by this:

```
pub const use_sysgpu = true;
```

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-04-19 20:48:33 -07:00
Stephen Gutekanst
87a7cd8ed8 engine: remove mach.Engine in favor of mach.Core for now
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-04-17 11:30:51 -07:00
Ali Chraghi
be3300b80a audio: add audio mixing/playback module 2024-04-16 10:50:59 -07:00
Stephen Gutekanst
16a895240d gfx: improve Sprite module pipeline management
* No longer abuse event arguments for pipeline information.
* Store pipeline information as entities/components.

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-04-16 10:10:37 -07:00
Stephen Gutekanst
013546b189 core: add mach.Core module API
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-04-08 23:49:38 -07:00
Stephen Gutekanst
fda017663a mach: keep module types closer together
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-04-07 13:55:08 -07:00
Stephen Gutekanst
f578e1f5e2 {module,ecs}: Mach ECS becomes the Mach' module system
This moves the bulk of the ECS code into `src/module`. It also makes
types like `mach.ecs.EntityID` accessible at the top-level `mach.EntityID`
instead.

The motivation of this change is to make the Mach module system a
first-class property of Mach.

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-04-06 15:18:38 -07:00
Stephen Gutekanst
5dbf9ece3b module: do not expose list of modules
Doing so would encourage accidentally creating dependency loops.

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-04-06 15:18:38 -07:00
Stephen Gutekanst
b3663f7899 module: enable Module to analyze event handler signatures
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-04-06 15:18:38 -07:00
Stephen Gutekanst
0328598945 module: merge ecs/systems.zig -> module.zig
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-04-06 15:18:38 -07:00
Stephen Gutekanst
5e353e60bb module: improve testing
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-04-06 15:18:38 -07:00
Stephen Gutekanst
56fc29743f move mach.ecs.Module -> mach.Module
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-04-06 15:18:38 -07:00
Stephen Gutekanst
f29b775b27 mach-core moves back into the main repository
Helps hexops/mach#1165

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-03-05 00:22:22 -07:00
Stephen Gutekanst
fa3f6161ad mach-sysgpu moves back into the main repository
Helps hexops/mach#1165

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-03-05 00:22:22 -07:00
Stephen Gutekanst
e38a441b69 fix linux build (gamemode requires libc)
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-03-05 00:22:22 -07:00
Stephen Gutekanst
e77a5a2ca2 mach-sysaudio moves back into the main repository
Helps hexops/mach#1165

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-03-05 00:22:22 -07:00
Stephen Gutekanst
d64d30c7db mach-gamemode moves back into the main repository
Helps hexops/mach#1165

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-03-05 00:22:22 -07:00
Stephen Gutekanst
221364415e mach-ecs moves back into the main repository
Helps hexops/mach#1165

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-03-05 00:22:22 -07:00
Stephen Gutekanst
87c3de78f5 gfx: font: begin adding text shaping via harfbuzz
Helps hexops/mach#877

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2023-10-05 20:35:13 -07:00
Stephen Gutekanst
3bcbdc4682 move mach.Atlas -> mach.gfx.Atlas
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2023-10-03 22:36:44 -07:00
Stephen Gutekanst
4e091f1cb8 replace module() helper; remove invalid re-exports;
Fixes hexops/mach#1041
Helps hexops/mach#1038

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2023-09-24 17:20:40 -07:00
Stephen Gutekanst
c16cddd250 all: refactor: cleanup module structure
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2023-09-22 08:24:16 -07:00
Stephen Gutekanst
52c4eb5d74 all: canonicalize import paths with mach- prefix
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2023-09-21 14:36:21 -07:00
Stephen Gutekanst
26a9392188 build: remove earcut dependency
Related to hexops/mach#967

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2023-09-21 14:10:22 -07:00
Stephen Gutekanst
8a57ea059c gfx2d: add initial text rendering ECS module
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2023-09-21 07:27:28 -07:00
Stephen Gutekanst
5b25db1025 math: begin rewrite of mach.math
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2023-09-04 17:01:54 -07:00
Stephen Gutekanst
c505acf95c testing: add mach.testing module
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2023-09-04 14:31:21 -07:00
Stephen Gutekanst
fd5d347f3e rename mach.Module -> mach.Engine; parameter injection
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2023-08-28 11:05:01 -07:00