1use super::*;
2
3
4#[derive(Debug, Clone, Copy, PartialEq, Eq)]
5pub enum RenderMode {
6 Unknown,
7 None,
8 Cpu,
9 DirectOgles,
10 DirectOgl,
11 DirectD3d9,
12 DirectD3d10,
13 DirectD3d11,
14 SoftwareGdi,
15 GpuOgles,
16 Unexpected(FRERenderMode),
17}
18impl From<FRERenderMode> for RenderMode {
19 fn from(value: FRERenderMode) -> Self {
20 match value {
21 FRERenderMode::FRE_RENDERMODE_UNKNOWN => Self::Unknown,
22 FRERenderMode::FRE_RENDERMODE_NONE => Self::None,
23 FRERenderMode::FRE_RENDERMODE_CPU => Self::Cpu,
24 FRERenderMode::FRE_RENDERMODE_DIRECT_OGLES => Self::DirectOgles,
25 FRERenderMode::FRE_RENDERMODE_DIRECT_OGL => Self::DirectOgl,
26 FRERenderMode::FRE_RENDERMODE_DIRECT_D3D9 => Self::DirectD3d9,
27 FRERenderMode::FRE_RENDERMODE_DIRECT_D3D10 => Self::DirectD3d10,
28 FRERenderMode::FRE_RENDERMODE_DIRECT_D3D11 => Self::DirectD3d11,
29 FRERenderMode::FRE_RENDERMODE_SOFTWARE_GDI => Self::SoftwareGdi,
30 FRERenderMode::FRE_RENDERMODE_GPU_OGLES => Self::GpuOgles,
31 _ => Self::Unexpected(value),
32 }
33 }
34}
35impl Display for RenderMode {
36 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
37 match *self {
38 Self::Unknown => write!(f, "Unknown"),
39 Self::None => write!(f, "None"),
40 Self::Cpu => write!(f, "CPU"),
41 Self::DirectOgles => write!(f, "Direct (OpenGL ES)"),
42 Self::DirectOgl => write!(f, "Direct (OpenGL)"),
43 Self::DirectD3d9 => write!(f, "Direct (Direct3D 9)"),
44 Self::DirectD3d10 => write!(f, "Direct (Direct3D 10)"),
45 Self::DirectD3d11 => write!(f, "Direct (Direct3D 11)"),
46 Self::SoftwareGdi => write!(f, "Software (GDI)"),
47 Self::GpuOgles => write!(f, "GPU (OpenGL ES)"),
48 Self::Unexpected(mode) => write!(f, "Unexpected FRERenderMode({mode})."),
49 }
50 }
51}
52