impl DCompState { /// This will create a DirectComposition device and a target for the window handle if not already initialized. /// If the device is already initialized, it will return the existing state. pubunsafefn get_or_init(
&mutself,
lib: &Arc<DCompLib>,
hwnd: &HWND,
) -> Result<&mut InnerState, crate::SurfaceError> { ifself.inner.is_none() { self.inner = Some(unsafe { InnerState::init(lib, hwnd) }?);
}
Ok(self.inner.as_mut().unwrap())
}
}
pubstruct InnerState { pub visual: DirectComposition::IDCompositionVisual, pub device: DirectComposition::IDCompositionDevice, // Must be kept alive but is otherwise unused after initialization. pub _target: DirectComposition::IDCompositionTarget,
}
impl InnerState { /// Creates a DirectComposition device and a target for the given window handle. pubunsafefn init(lib: &Arc<DCompLib>, hwnd: &HWND) -> Result<Self, crate::SurfaceError> {
profiling::scope!("DCompState::init"); let dcomp_device = lib.create_device()?;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.