From d63d367ec041a54ecf537abe6942159ba0bdb404 Mon Sep 17 00:00:00 2001 From: Seivan Heidari Date: Thu, 21 Feb 2019 21:30:41 +0100 Subject: [PATCH] Allow creating a surface by passing a metal layer. This is useful if you're using `SDL2` ```rust let canvas = window.into_canvas().build().unwrap(); let metal_layer = unsafe { sdl2::sys::SDL_RenderGetMetalLayer(canvas.raw()) }; let surface = instance.create_surface_with_metal_layer(metal_layer); ``` --- wgpu-rs/src/lib.rs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/wgpu-rs/src/lib.rs b/wgpu-rs/src/lib.rs index 8bff0c44c8..d14409ba0f 100644 --- a/wgpu-rs/src/lib.rs +++ b/wgpu-rs/src/lib.rs @@ -242,6 +242,13 @@ impl Instance { id: wgn::wgpu_instance_create_surface_from_winit(self.id, window), } } + + #[cfg(feature = "metal")] + pub fn create_surface_with_metal_layer(&self, window: *mut std::ffi::c_void) -> Surface { + Surface { + id: wgn::wgpu_instance_create_surface_from_macos_layer(self.id, window), + } + } } impl Adapter {