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