direct3d11/flags/
feature_level.rs

1use 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}