mach: Unified entry point and redesigned engine core #257
No reviewers
Labels
No labels
CI
all
basisu
blog
bug
build
contributor-friendly
core
correctness
deferred
dev
direct3d-headers
docs
driver-os-issue
duplicate
dxcompiler
editor
examples
experiment
feature-idea
feedback
flac
freetype
gamemode
gkurve
glfw
gpu
gpu-dawn
harfbuzz
help welcome
in-progress
infrastructure
invalid
libmach
linux-audio-headers
long-term
mach
mach.gfx
mach.math
mach.physics
mach.testing
model3d
needs-triage
object
opengl-headers
opus
os/linux
os/macos
os/wasm
os/windows
package-manager
priority
proposal
proposal-accepted
question
roadmap
slipped
stability
sysaudio
sysgpu
sysjs
validating-fix
vulkan-zig-generated
wayland-headers
website
wontfix
wrench
www
x11-headers
xcode-frameworks
zig-update
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
hexops/mach!257
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "ay-app-entry"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
From https://matrix.to/#/!hPlvgnLQhMkTucKPrh:matrix.org/$_m_5exLov-5Ue5sGq-6_veTZ0k-RVJAZo9Lj5igjeXA?via=matrix.org
This PR implements:
pub fn mainas their entry point but it doesnt work in other environments like wasm (web) and android or require additional configurations, like in iOS. So instead ask the end application to provide a set of functions: init, deinit, update and resize (and more in future) which are used as per platform limitations behind the scenesEnginestruct which would hold the actual engine functionality. It currently has core (window, events etc) and gpu_driver (webgpu structs). The goal is to provide a cross platform abstraction over these interfaces.Additionally:
Appstruct was added in root build.zig which acts as the build system SDK, Its point is to set up the complex build process behind the scenes.Optionswhich were previously being passed to oldAppon init is now managed though an exported declaration in the app file usingpub const options: mach,Engine.Options = {...};This PR does not includes:
Progress towards #18
I have a few thoughts about the
coreandgpu_driverstructs, but I can imagine I don't have full picture of how they will be swapped out in a browser context yet so I'm happy to wait to discuss those.This is a clear improvement over the status quo, so merging!