Stephen Gutekanst
cbf066ade5
{gfx,examples}: improve sysgpu compatibility with higher-level examples
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-04-29 20:17:26 -07:00
Stephen Gutekanst
15fd2c3a64
Core: use an explicit .start event sent by app to begin .tick events
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-04-29 20:17:26 -07:00
Stephen Gutekanst
8089d3356e
sysgpu: implement texture getWidth/getHeight
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-04-29 20:17:26 -07:00
Stephen Gutekanst
44f950a7f3
core: provide a default sysgpu interface implementation
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-04-29 20:17:26 -07:00
Stephen Gutekanst
fc0ff2fffd
all: rename local_events -> events
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-04-29 20:17:26 -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
d690814b16
Core: fix potential printTitle leak
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-04-29 20:17:26 -07:00
Stephen Gutekanst
2c8ba82aa3
Core: use .app local init/deinit/tick events (avoid global events)
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-04-29 20:17:26 -07:00
Stephen Gutekanst
e0640cc948
TextPipeline: make .init and .deinit explicit
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-04-29 20:17:26 -07:00
Stephen Gutekanst
ed9137fe98
SpritePipeline: make .init and .deinit explicit
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-04-29 20:17:26 -07:00
Stephen Gutekanst
3504dfcab6
Audio: make deinit explicit
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-04-29 20:17:26 -07:00
Stephen Gutekanst
4a000c7995
{Core,examples}: add TODO markers for core APIs that require module exposure
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-04-29 20:17:26 -07:00
Stephen Gutekanst
03a089610b
Core: store framebuffer information as components
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-04-29 20:17:26 -07:00
Stephen Gutekanst
656b0202f2
Core: add .present_frame event replacing swapbuffers call
...
Note that on e.g. web platform, swapbuffers is not an explicit call.
We also need a signal that the frame has been submitted and finished,
and this is it.
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-04-29 20:17:26 -07:00
Stephen Gutekanst
431e0dbbe1
{gfx,examples}: use core.state().queue
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-04-29 20:17:26 -07:00
Stephen Gutekanst
68677b3448
{Core,examples}: set window title via component
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-04-29 20:17:26 -07:00
Stephen Gutekanst
79dccb4d73
{gfx,examples}: use core.state().device
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-04-29 20:17:26 -07:00
Stephen Gutekanst
bffc668005
{gfx,examples}: add labels to gpu objects
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-04-21 20:29:14 -07:00
Liam Swayne
2b8bfcaa3e
[math] simplify algorithm finding greatest vector
2024-04-21 17:34:15 -07:00
pfg
6a09787496
sysgpu: fix overflow trying to report an error
2024-04-21 17:33:57 -07:00
Ali Chraghi
7991053b37
spirv: sqrt instruction
2024-04-21 17:33:22 -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
07d9855f73
core: examples: update import path style
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-04-19 19:05:18 -07:00
Stephen Gutekanst
2bc17a33fb
module: correct alignment of dispatched arguments; move stack space to caller
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-04-19 18:05:17 -07:00
Stephen Gutekanst
d2179e8f2c
gfx: correct some zls autofixes
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-04-18 21:04:43 -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
Stephen Gutekanst
7011ad4848
audio: handle possible invalidated pointer after buffer growth
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-04-17 11:28:37 -07:00
Stephen Gutekanst
d045b34f70
{gfx,examples}: update all to new mach.Core module API
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-04-17 11:27:48 -07:00
Stephen Gutekanst
4ba8addb3c
core: synchronize global .init before first .tick
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-04-16 20:48:04 -07:00
Stephen Gutekanst
282c83877e
audio: redesign audio module
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-04-16 19:14:37 -07:00
Stephen Gutekanst
2b7b8f5571
math: add pow
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-04-16 19:14:37 -07:00
Stephen Gutekanst
80780054b5
module: fix removeComponent, add TODO about stack space
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-04-16 19:14:37 -07:00
Stephen Gutekanst
c7f39f0dbe
sysaudio: correct latency comment
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-04-16 19:14:37 -07:00
Stephen Gutekanst
3d8c28a361
all: rename parameters foo_mod -> foo
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-04-16 19:14:37 -07:00
Stephen Gutekanst
f1dbc3955c
audio: cleanup audio module
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-04-16 11:48:15 -07:00
Ali Chraghi
be3300b80a
audio: add audio mixing/playback module
2024-04-16 10:50:59 -07:00
Stephen Gutekanst
b0d6c88f3b
audio: reduce alsa and pulseaudio latency to 30ms
...
Closes #928
Change contributed by Ali in https://github.com/hexops/mach/pull/1138
I am just cleaning up the commit.
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-04-16 10:48:00 -07:00
Stephen Gutekanst
74595362d3
gfx: add some Text module TODOs
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-04-16 10:41:32 -07:00
Stephen Gutekanst
8e3f9e21e1
module: add MACH_DEBUG_TRACE option to get logs of event dispatch order
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-04-16 10:39:35 -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
5714a60108
gfx: split text style entity components into a distinct module
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-04-15 02:42:07 -07:00
Stephen Gutekanst
2cf68adcc7
src/gpu: move github.com/hexops/mach-gpu here
...
This moves github.com/hexops/mach-gpu@528dad0823dafeae5d474c88cc658b091bf2e605 to
this repository in the src/gpu directory. It can be imported via `@import("mach").gpu`.
Soon we will move away from mach-gpu entirely as part of #1166 - but in the meantime
I am giving a workshop at https://sycl.it and it would be nice for people using the
`mach.gpu.*` API to be able to search the API in this single repository.
There's not much harm to moving this code here.
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-04-13 11:25:45 -07:00
Ali Chraghi
c45606c290
sysaudio: disable i24 sample format
...
Workaround for #1152
2024-04-13 07:25:39 -07:00
Stephen Gutekanst
d1c3d26710
core: provide a default pub const GPUInterface
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-04-09 21:20:48 -07:00
Stephen Gutekanst
3583e1754f
core: add a TODO regarding module API
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-04-09 18:53:18 -07:00
TheHonestHare
f369b31137
added swap chain usage flags to core.init() options
2024-04-08 23:54:43 -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
69b749879d
core: refactor glfw appUpdateThread
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-04-08 23:49:38 -07:00
Stephen Gutekanst
c32c1df00a
module: improve validation of missing mod name
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-04-08 23:49:38 -07:00
Stephen Gutekanst
c46d949b98
module: improve "cannot inject argument" error message
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-04-07 22:37:59 -07:00