aboutsummaryrefslogtreecommitdiff
path: root/src/platform/metal/metal_context.h
diff options
context:
space:
mode:
authorhachem <im@hachem.wtf>2026-08-20 02:27:02 +0200
committerhachem <im@hachem.wtf>2026-08-20 02:40:07 +0200
commit5b361d81dbd2af0d0e99b9eb1adebea76ff05db0 (patch)
tree34db1df17e8c7248aeeb92156d635d31c2484e3f /src/platform/metal/metal_context.h
parente3abaaf59777258ba06705135a0cafcb5918ad12 (diff)
[chore]: MASSIVE refactor + more vulkan bs
Diffstat (limited to 'src/platform/metal/metal_context.h')
-rw-r--r--src/platform/metal/metal_context.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/platform/metal/metal_context.h b/src/platform/metal/metal_context.h
new file mode 100644
index 0000000..f1e376b
--- /dev/null
+++ b/src/platform/metal/metal_context.h
@@ -0,0 +1,16 @@
+#pragma once
+
+// Pure-C++ interface to the Metal backend (no Objective-C leaks into the rest
+// of the engine). Implemented in MetalContext.mm.
+namespace Donut
+{
+ // Phase 1 bring-up: creates the default Metal device + command queue and
+ // logs its capabilities, proving the Metal toolchain and build integration
+ // work natively on Apple Silicon. This grows into the Metal compute island
+ // that runs the geodesic ray tracer in real time.
+ auto metal_probe() -> bool;
+
+ // Compiles + dispatches a trivial compute kernel and validates the read-back,
+ // proving the Metal compute path the geodesic ray tracer will run on.
+ auto metal_compute_self_test() -> bool;
+}