winsafe\mf/
structs.rs

1#![allow(non_camel_case_types, non_snake_case)]
2
3use crate::co;
4use crate::decl::*;
5
6/// [`MFCLOCK_PROPERTIES`](https://learn.microsoft.com/en-us/windows/win32/api/mfidl/ns-mfidl-mfclock_properties)
7/// struct.
8#[repr(C)]
9#[derive(Default, Clone, Copy)]
10pub struct MFCLOCK_PROPERTIES {
11	pub qwCorrelationRate: u64,
12	pub guidClockId: GUID,
13	pub dwClockFlags: co::MFCLOCK_RELATIONAL_FLAG,
14	pub qwClockFrequency: u64,
15	pub dwClockTolerance: u32,
16	pub dwClockJitter: u32,
17}
18
19/// [`MFVideoNormalizedRect`](https://learn.microsoft.com/en-us/windows/win32/api/evr/ns-evr-mfvideonormalizedrect)
20/// struct.
21#[repr(C)]
22#[derive(Default, Clone, Copy, PartialEq)]
23pub struct MFVideoNormalizedRect {
24	pub left: f32,
25	pub top: f32,
26	pub right: f32,
27	pub bottom: f32,
28}
29
30impl std::fmt::Display for MFVideoNormalizedRect {
31	fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
32		write!(
33			f,
34			"left {:.2}, top {:.2}, right {:.2}, bottom {:.2}",
35			self.left, self.top, self.right, self.bottom
36		)
37	}
38}
39
40impl MFVideoNormalizedRect {
41	/// Creates a new `MFVideoNormalizedRect`.
42	#[must_use]
43	pub const fn new(left: f32, top: f32, right: f32, bottom: f32) -> MFVideoNormalizedRect {
44		Self { left, top, right, bottom }
45	}
46}