diff --git a/src/lib.rs b/src/lib.rs index 3b40c0f..3ee358a 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -250,8 +250,8 @@ pub async fn init_gpu_inner( mod ffi { use std::{num::NonZero, ptr::NonNull}; - use crate::init_gpu_inner; - use glam::{UVec2, uvec2}; + use crate::{Gpu, init_gpu_inner}; + use glam::uvec2; use wgpu::rwh::{RawDisplayHandle, RawWindowHandle, XcbDisplayHandle, XcbWindowHandle}; #[derive(Debug, Clone, Copy)] @@ -263,11 +263,10 @@ mod ffi { pub cam_fovy: f32, } - unsafe fn create_viewport( + unsafe fn create_gpu( display: impl Into, window: impl Into, - size: UVec2, - ) -> crate::Core { + ) -> Gpu { let target = wgpu::SurfaceTargetUnsafe::RawHandle { raw_display_handle: display.into(), raw_window_handle: window.into(), @@ -276,7 +275,7 @@ mod ffi { instance.create_surface_unsafe(target) })) .unwrap(); - crate::Core::new(gpu, size) + gpu } #[diplomat::opaque_mut] @@ -287,9 +286,9 @@ mod ffi { let display = XcbDisplayHandle::new(Some(NonNull::new(connection as *mut _).unwrap()), 0); let window = XcbWindowHandle::new(NonZero::new(window).unwrap()); - Box::new(Self(unsafe { - create_viewport(display, window, uvec2(width, height)) - })) + let gpu = unsafe { create_gpu(display, window) }; + let size = uvec2(width, height); + Box::new(Self(crate::Core::new(gpu, size))) } pub fn configure(&mut self, width: u32, height: u32) {