use euclid::{Size2D, UnknownUnit}; use openxr::{ExtensionSet, FrameStream, FrameWaiter, Graphics, Instance, Session, SystemId}; use surfman::Context as SurfmanContext; use surfman::Device as SurfmanDevice; use surfman::Error as SurfmanError; use surfman::SurfaceTexture; use webxr_api::Error; pub enum GraphicsProvider {} pub trait GraphicsProviderMethods { fn enable_graphics_extensions(exts: &mut ExtensionSet); fn pick_format(formats: &[u32]) -> u32; fn create_session( device: &SurfmanDevice, instance: &Instance, system: SystemId, ) -> Result<(Session, FrameWaiter, FrameStream), Error>; fn surface_texture_from_swapchain_texture( image: ::SwapchainImage, device: &mut SurfmanDevice, context: &mut SurfmanContext, size: &Size2D, ) -> Result; }