direct3d11/flags/
feature_level.rs1use std::fmt;
2
3#[repr(C)]
4#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
5pub struct FeatureLevel(pub u32);
6impl FeatureLevel {
7 pub const LEVEL_9_1: FeatureLevel = FeatureLevel(0x9100);
8 pub const LEVEL_9_2: FeatureLevel = FeatureLevel(0x9200);
9 pub const LEVEL_9_3: FeatureLevel = FeatureLevel(0x9300);
10 pub const LEVEL_10_0: FeatureLevel = FeatureLevel(0xA000);
11 pub const LEVEL_10_1: FeatureLevel = FeatureLevel(0xA100);
12 pub const LEVEL_11_0: FeatureLevel = FeatureLevel(0xB000);
13 pub const LEVEL_11_1: FeatureLevel = FeatureLevel(0xB100);
14 pub const LEVEL_12_0: FeatureLevel = FeatureLevel(0xC000);
15 pub const LEVEL_12_1: FeatureLevel = FeatureLevel(0xC100);
16 pub fn major(&self) -> u32 {
17 (self.0 >> 12) & 0xF
18 }
19 pub fn minor(&self) -> u32 {
20 (self.0 >> 8) & 0xF
21 }
22}
23impl fmt::Debug for FeatureLevel {
24 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
25 write!(fmt, "FeatureLevel({}.{})", self.major(), self.minor())
26 }
27}