use d3d11_ffi::{core::PWSTR, Direct3D11::ID3DUserDefinedAnnotation};
#[derive(Clone)]
pub struct UserDefinedAnnotation(pub(crate) ID3DUserDefinedAnnotation);
impl UserDefinedAnnotation {
pub fn begin_event(&self, name: &str) -> i32 {
let name_wide = name.encode_utf16().chain(Some(0)).collect::<Vec<_>>();
let name_ptr = PWSTR::from_raw(name_wide.as_ptr() as _);
unsafe { self.0.BeginEvent(name_ptr) }
}
pub fn end_event(&self) -> i32 {
unsafe { self.0.EndEvent() }
}
pub fn set_marker(&self, name: &str) {
let name_wide = name.encode_utf16().chain(Some(0)).collect::<Vec<_>>();
let name_ptr = PWSTR::from_raw(name_wide.as_ptr() as _);
unsafe {
self.0.SetMarker(name_ptr);
}
}
}