skia_safe/gpu/ganesh/vk/
vk_direct_context.rs

1pub mod direct_contexts {
2    use skia_bindings as sb;
3
4    use crate::{
5        gpu::{vk, ContextOptions, DirectContext},
6        prelude::*,
7    };
8
9    pub fn make_vulkan<'a>(
10        backend_context: &vk::BackendContext,
11        options: impl Into<Option<&'a ContextOptions>>,
12    ) -> Option<DirectContext> {
13        unsafe {
14            let end_resolving = backend_context.begin_resolving();
15            let context = DirectContext::from_ptr(sb::C_GrDirectContexts_MakeVulkan(
16                backend_context.native.as_ptr() as _,
17                options.into().native_ptr_or_null(),
18            ));
19            drop(end_resolving);
20            context
21        }
22    }
23}