Seregon/StratoSDK

StratoSDK is a framework with a declarative approach similar to Flutter/React, written and designed entirely for Rust.

Rust/27.3 KB/No license
crates/strato-ui-renderer/src/platform/mac/rendering/mod.rs
1mod metal;
2mod renderer;
3mod renderer_manager;
4 
5#[cfg(wgpu)]
6mod wgpu;
7 
8pub use self::metal::is_integrated_gpu;
9pub use renderer::{Device, Renderer};
10pub use renderer_manager::RendererManager;
11 
12/// Returns `true` if a low power GPU is available for rendering. Typically, this is true for
13/// machines with two GPUs -- a dedicated discrete high-performance GPU and a lower power
14/// integrated GPU.
15pub fn is_low_power_gpu_available() -> bool {
16 cfg_if::cfg_if! {
17 if #[cfg(wgpu)] {
18 crate::r#async::block_on(crate::rendering::wgpu::is_low_power_gpu_available())
19 } else {
20 let devices = ::metal::Device::all();
21 let gpu_count = devices.len();
22 gpu_count > 1
23 && devices
24 .iter()
25 .any(metal::is_integrated_gpu)
26 }
27 }
28}
29