Commit graph

29 commits

Author SHA1 Message Date
Stephen Gutekanst
6e2f937026 core: add Null backend to show what implementing a backend looks like
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-07-13 15:48:07 -07:00
Hordur Johannsson
c32e763e11
add new win32 platform implementation (#1224)
* Buffer resources from swap chain were not being released.
* sysgpu Texture.getWidth() should return width not height.
* d3d12: Fixing issues with d3d12 on sysgpu.
* Initial win32 platform
2024-07-13 15:33:45 -07:00
Ali Cheraghi
3fa889b136 core: revive wayland 2024-07-13 09:06:35 -07:00
Ali Cheraghi
266e7a548b core: refactor 2024-07-13 09:06:35 -07:00
Ali Cheraghi
c254337e4b {core, build}: remove glfw 2024-07-13 09:06:35 -07:00
Ali Cheraghi
539aadf664 sysgpu: remove everything related to dawn 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
e6cecc3ebe core: remove all examples
These examples were great at showing how to use the WebGPU and sysgpu APIs
but otherwise had poor code quality, depended on zmath instead of mach.math,
etc. and so are being removed.

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-07-07 22:08:16 -07:00
Stephen Gutekanst
2a7e6049fd linux: update to latest vulkan-zig API; fix build
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-06-02 18:57:45 -07:00
Stephen Gutekanst
707e5cc756 update to Zig 2024.05
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-06-02 18:57:45 -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
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
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
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
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
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
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
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
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
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
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
3ba511ffaf correct wasm32-freestanding build
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-03-08 23:56:59 -07:00
Stephen Gutekanst
b7fb2057f7 fix x86_64-linux-gnu build
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-03-08 23:44:33 -07:00
Stephen Gutekanst
f25f435275 core: fix gamemode import path
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-03-05 01:03:42 -07:00
Stephen Gutekanst
38f296ecce src/core: move mach-core@9a4d09707d9f1cb6ea5602bdf58caeefc46146be package to here
Helps hexops/mach#1165

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2024-03-05 00:22:22 -07:00