Stephen Gutekanst
852d232335
mach: update callback context ordering
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-08-12 00:43:43 -07:00
Stephen Gutekanst
fa1ddc4f0d
mach: correctly fire resize event on startup once again
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-08-12 00:43:43 -07:00
Stephen Gutekanst
5bd33af68f
mach: update libmach to use new mach/gpu API
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-08-12 00:43:43 -07:00
Stephen Gutekanst
2b354f9226
mach: add missing errdefer if GLFW window creation fails
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-08-12 00:43:43 -07:00
Stephen Gutekanst
85ddeeed5c
mach: update to latest mach/gpu API
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-08-12 00:43:43 -07:00
LeRoyce Pearson
f4611e1414
mach: add headless option ( #450 )
...
Co-authored-by: Stephen Gutekanst <stephen.gutekanst@gmail.com>
2022-08-06 19:38:04 -07:00
PiergiorgioZagaria
6eaacde444
gamemode: Add linux_gamemode_is_active field to Platform
2022-07-28 04:12:25 -07:00
PiergiorgioZagaria
d84a32363c
gamemode: add check for GAMEMODE env var equal false
2022-07-28 04:12:25 -07:00
PiergiorgioZagaria
76bf493a86
gamemode: Small fix for initLinuxGamemode()
2022-07-28 04:12:25 -07:00
PiergiorgioZagaria
80270a5cfc
gamemode: Move gamemode init and deinit into their own functions
2022-07-28 04:12:25 -07:00
PiergiorgioZagaria
509ebd13ab
mach: Initial commit for gamemode
2022-07-28 04:12:25 -07:00
Stephen Gutekanst
1356cdd838
all: zig fmt
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-07-22 19:43:41 -07:00
Zachary Huang
8f6273c0d0
libmach: fix small issues and naming conventions
2022-07-20 18:59:29 -07:00
Zachary Huang
5d86314fbb
libmach: update API again, factors out init/update/deinit from native.zig main function
2022-07-20 18:59:29 -07:00
Zachary Huang
77aecbe806
libmach: update API, exposes init, update, and deinit functions
2022-07-19 09:32:52 -07:00
Zachary Huang
9ece370059
libmach: initial API bindings for mach core
2022-07-14 22:44:44 -07:00
iddev5
dd0a6064fb
mach: Cast window positions (i64) to i32 on window resize
2022-07-09 15:07:55 -07:00
iddev5
34514699a1
mach: wasm: Use default log level
2022-07-06 05:55:04 -07:00
Stephen Gutekanst
72ea652dca
mach: require a 'pub const App' to be exposed
...
This requires apps expose a `pub const App` from their `main.zig`, effectively adopting
the high-level/low-level application API outlined in hexops/mach#349
If `pub const App` does not exist, a clear compiler error is produced:
```
./src/platform/common.zig:5:9: error: expected e.g. `pub const App = mach.App(modules, init)' (App definition missing in your main Zig file)
@compileError("expected e.g. `pub const App = mach.App(modules, init)' (App definition missing in your main Zig file)");
^
./src/platform/native.zig:13:28: note: called from here
common.checkApplication(app_pkg);
^
./src/platform/native.zig:12:10: note: called from here
comptime {
^
./src/platform/native.zig:15:20: error: container '.app' has no member called 'App'
const App = app_pkg.App;
^
```
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-07-04 21:32:38 -07:00
Stephen Gutekanst
e79c9e075a
mach: rename mach.Engine -> mach.Core
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-07-04 20:14:27 -07:00
Ayush
858c14bbae
{mach,examples}: Fix memory leaks ( #384 )
2022-07-03 08:47:47 -07:00
dweiller
0893c14893
mach: native: deinit gpa for leak detection in debug builds
2022-07-01 16:48:35 -07:00
Jamie Brandon
5bb740f89e
mach: flesh out mach.Event ( #377 )
...
* Flesh out mach.Event
2022-07-01 16:47:06 -07:00
iddev5
f80161bc72
mach: Use math.inf instead of math.floatMax for indefinite wait of events
2022-06-25 08:26:13 -07:00
Ali Chraghi
ff69efea52
mach: check application signature
2022-06-25 08:25:28 -07:00
Ali Chraghi
c831840094
wasm: Arrange key codes in numberical order of value
2022-06-25 08:25:28 -07:00
dweiller
1b32552e73
mach: re-export log_level and scope_levels from App
2022-06-24 12:58:07 -07:00
David Vanderson
43bff35d2c
mach: mouse cursor support ( #352 )
...
adds mouse cursor support for standard cursors
Co-authored-by: Stephen Gutekanst <stephen.gutekanst@gmail.com>
2022-06-15 21:53:55 -07:00
iddev5
47286508e3
mach: wasm: Implement fullscreen support for browser platform
2022-06-11 16:00:02 -07:00
iddev5
3dc131d4fa
mach: Implement fullscreen window support for native platforms (glfw)
...
This feature remembers the last position of window before turning to
fullscreen.
2022-06-11 16:00:02 -07:00
Stephen Gutekanst
c5432a9353
mach: zig fmt
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-06-10 16:56:40 -07:00
David Vanderson
ade26b24b1
ditch setTimeout
2022-06-10 12:57:31 -07:00
David Vanderson
4eb872944a
wait event stuff for wasm backend
2022-06-10 12:57:31 -07:00
David Vanderson
0f7c34a5ad
review updates
2022-06-10 12:57:31 -07:00
David Vanderson
9354c178eb
native: switch to setWaitEvent()
2022-06-10 12:57:31 -07:00
iddev5
772a821ce1
mach: wasm: Implement setShouldClose for wasm
2022-06-08 07:31:53 -07:00
iddev5
40c0659cc9
mach: App.update will now return !void instead of !bool
...
In order to close the application, there is already
Engine.setShouldClose() which would roughly do the same thing.
2022-06-08 07:31:53 -07:00
iddev5
db377459c4
mach: Listen to resize event for canvas and thus store window and
...
framebuffer size
2022-06-06 00:37:38 -07:00
iddev5
99dc10e58a
mach: wasm: Implement mouse press, release, motion and scroll events
2022-06-05 13:34:24 -07:00
iddev5
efe90fc64f
mach: Rename scroll -> mouse_scroll and use f32 for offsets
2022-06-05 13:34:24 -07:00
David Vanderson
a2a6c2a288
mach: add mouse motion and mouse button events ( #325 )
...
* add mouse motion and mouse button events
* add scroll events
* switch from button/action to mouse_press and mouse_release events
2022-06-04 06:29:23 -07:00
iddev5
176554fe4d
mach: Make size limits part of runtime options (mach.Options)
...
Removed method Engine.setSizeLimits and added two new fields to
mach.Options called ``size_min`` and ``size_max`` which does the same
thing.
2022-06-01 23:45:56 -07:00
iddev5
ed0e6f5c61
mach: Added runtime application options
...
Reused mach.Options for run time options. It is set with
Engine.setOptions function. ``pub const options`` on top level App has
no effect and will be ignored completely.
Added a blank struct StartupOptions which would be used for startup time
options in future. Currently they aren't used for anything.
2022-06-01 23:45:56 -07:00
iddev5
50fe649ab1
mach: merge and remove the extra layer of indirection caused by Core and
...
GpuDriver
Core and GpuDriver both are merged into one type called Platform. Also
previously the fields and methods which were called as
``engine.core.field`` will now be ``engine.field`` i.e an extra layer is
removed.
2022-06-01 23:45:56 -07:00
David Vanderson
3961073084
{mach,examples}: followups to getWindowSize / getFramebufferSize ( #322 )
...
* followup to window size saving, getWindowSize and getFramebufferSize no longer return errors
* updated the examples
2022-05-31 11:39:53 -07:00
David Vanderson
c0e0b7c686
mach: save window and framebuffer size from glfw callbacks
...
Previously if user code called core.getWindowSize() (or
getFramebufferSize) during their update they could get sizes that did
not match engine.gpu_driver.target_desc because the window had changed
size.
Now core.getWindowSize() returns the last size we got from a glfw
callback instead of directly querying the window. So all sizes should
agree during a single frame.
This relies on glfw callbacks only happening when we call
glfw.pollEvents(). This isn't strictly true - a callback could happen
during any glfw call. Might have to revisit this later.
2022-05-30 12:17:04 -07:00
iddev5
ff126c0054
mach/platform: check for App functions in all platforms
2022-05-30 10:22:42 -07:00
iddev5
21c49ff9be
mach: Move all platform specific files to platform/ directory
2022-05-30 10:22:42 -07:00