Implement Metal device, command queue, and CAMetalLayer setup
Add Metal GPU framework bindings to the platform crate and integrate
a CAMetalLayer-backed view into the browser for GPU-accelerated rendering.
- metal.rs: FFI bindings for MTLDevice, MTLCommandQueue, MTLCommandBuffer,
MTLRenderCommandEncoder, CAMetalLayer, and render pass descriptor helpers
- MetalView in appkit.rs: custom NSView subclass (WeMetalView) using
CAMetalLayer with updateLayer for clear-to-color rendering
- Browser falls back to BitmapView when Metal is unavailable
- Double-buffered presentation via CAMetalLayer.nextDrawable
- 6 new Metal tests (device, queue, layer creation and configuration)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
authored by
tangled.org
7b76729a
ea23234d