diff --git a/c/src/lib.rs b/c/src/lib.rs index a20a663f..d216e759 100644 --- a/c/src/lib.rs +++ b/c/src/lib.rs @@ -26,6 +26,7 @@ use pathfinder_gl::{GLDevice, GLVersion}; use pathfinder_gpu::Device; use pathfinder_resources::ResourceLoader; use pathfinder_resources::fs::FilesystemResourceLoader; +use pathfinder_resources::embedded::EmbeddedResourceLoader; use pathfinder_renderer::concurrent::rayon::RayonExecutor; use pathfinder_renderer::concurrent::scene_proxy::SceneProxy; use pathfinder_renderer::gpu::options::{DestFramebuffer, RendererLevel}; @@ -507,7 +508,13 @@ pub unsafe extern "C" fn PFFillStyleDestroy(fill_style: PFFillStyleRef) { drop(Box::from_raw(fill_style)) } -// `gl` +// `resources` + +#[no_mangle] +pub unsafe extern "C" fn PFEmbeddedResourceLoaderCreate() -> PFResourceLoaderRef { + let loader = Box::new(EmbeddedResourceLoader::new()); + Box::into_raw(Box::new(ResourceLoaderWrapper(loader as Box))) +} #[no_mangle] pub unsafe extern "C" fn PFFilesystemResourceLoaderLocate() -> PFResourceLoaderRef { @@ -523,6 +530,13 @@ pub unsafe extern "C" fn PFFilesystemResourceLoaderFromPath(path: *const c_char) Box::into_raw(Box::new(ResourceLoaderWrapper(loader as Box))) } +#[no_mangle] +pub unsafe extern "C" fn PFResourceLoaderDestroy(loader: PFResourceLoaderRef) { + drop(Box::from_raw(loader)) +} + +// `gl` + #[no_mangle] pub unsafe extern "C" fn PFGLLoadWith(loader: PFGLFunctionLoader, userdata: *mut c_void) { gl::load_with(|name| { @@ -548,11 +562,6 @@ pub unsafe extern "C" fn PFGLDeviceDestroy(device: PFGLDeviceRef) { drop(Box::from_raw(device)) } -#[no_mangle] -pub unsafe extern "C" fn PFResourceLoaderDestroy(loader: PFResourceLoaderRef) { - drop(Box::from_raw(loader)) -} - // `gpu` #[no_mangle]