From 43bc5a5829d7669362d836d84a8096d310c1fae8 Mon Sep 17 00:00:00 2001 From: Nick Spagnola Date: Mon, 29 Jun 2020 06:59:54 -0700 Subject: [PATCH 1/3] expose EmbeddedResourceLoader to c api --- c/src/lib.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/c/src/lib.rs b/c/src/lib.rs index 12d9568b..9472423b 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}; @@ -508,6 +509,11 @@ pub unsafe extern "C" fn PFFillStyleDestroy(fill_style: PFFillStyleRef) { } // `gl` +#[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 { From bd6d7eb48942da36fb80f1aff77e5d1a9981ea6b Mon Sep 17 00:00:00 2001 From: Nick Spagnola Date: Mon, 29 Jun 2020 07:00:28 -0700 Subject: [PATCH 2/3] cleanup comments --- c/src/lib.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/c/src/lib.rs b/c/src/lib.rs index 9472423b..cba5851e 100644 --- a/c/src/lib.rs +++ b/c/src/lib.rs @@ -508,7 +508,8 @@ 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()); @@ -529,6 +530,9 @@ pub unsafe extern "C" fn PFFilesystemResourceLoaderFromPath(path: *const c_char) Box::into_raw(Box::new(ResourceLoaderWrapper(loader as Box))) } + +// `gl` + #[no_mangle] pub unsafe extern "C" fn PFGLLoadWith(loader: PFGLFunctionLoader, userdata: *mut c_void) { gl::load_with(|name| { From 04787f15149db06aa6faa7bf3291b9c959f8ca75 Mon Sep 17 00:00:00 2001 From: Nick Spagnola Date: Mon, 29 Jun 2020 07:01:19 -0700 Subject: [PATCH 3/3] move destroy fn out of `gl` --- c/src/lib.rs | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/c/src/lib.rs b/c/src/lib.rs index cba5851e..ac3d6968 100644 --- a/c/src/lib.rs +++ b/c/src/lib.rs @@ -530,6 +530,10 @@ 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` @@ -558,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]