1
1
mirror of https://github.com/wez/wezterm.git synced 2024-12-26 14:54:16 +03:00
wezterm/config/src/frontend.rs
2023-03-15 10:21:11 -07:00

58 lines
1.6 KiB
Rust

use luahelper::impl_lua_conversion_dynamic;
use wezterm_dynamic::{FromDynamic, ToDynamic};
#[derive(Debug, Clone, Copy, PartialEq, Eq, FromDynamic, ToDynamic, Default)]
pub enum FrontEndSelection {
#[default]
OpenGL,
WebGpu,
Software,
}
/// Corresponds to <https://docs.rs/wgpu/latest/wgpu/struct.AdapterInfo.html>
#[derive(Debug, Clone, FromDynamic, ToDynamic)]
pub struct GpuInfo {
pub name: String,
pub device_type: String,
pub backend: String,
pub driver: Option<String>,
pub driver_info: Option<String>,
pub vendor: Option<usize>,
pub device: Option<usize>,
}
impl_lua_conversion_dynamic!(GpuInfo);
impl ToString for GpuInfo {
fn to_string(&self) -> String {
let mut result = format!(
"name={}, device_type={}, backend={}",
self.name, self.device_type, self.backend
);
if let Some(driver) = &self.driver {
result.push_str(&format!(", driver={driver}"));
}
if let Some(driver_info) = &self.driver_info {
result.push_str(&format!(", driver_info={driver_info}"));
}
if let Some(vendor) = &self.vendor {
result.push_str(&format!(", vendor={vendor}"));
}
if let Some(device) = &self.device {
result.push_str(&format!(", device={device}"));
}
result
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, FromDynamic, ToDynamic)]
pub enum WebGpuPowerPreference {
LowPower,
HighPerformance,
}
impl Default for WebGpuPowerPreference {
fn default() -> Self {
Self::LowPower
}
}