use crate::{PlatformAtlas, Scene};
#[cfg(any(test, feature = "test-support", feature = "bench-support"))]
use gpui_types::{DevicePixels, Size};
use std::sync::Arc;
pub trait SceneRenderer: 'static {
fn draw(&mut self, scene: &Scene) -> bool;
fn sprite_atlas(&self) -> Arc<dyn PlatformAtlas>;
#[cfg(any(test, feature = "test-support", feature = "bench-support"))]
fn set_viewport_size(&mut self, _size: Size<DevicePixels>) {}
#[cfg(any(test, feature = "test-support", feature = "bench-support"))]
fn render_scene_to_image(
&mut self,
_scene: &Scene,
_size: Size<DevicePixels>,
) -> anyhow::Result<image::RgbaImage> {
anyhow::bail!("render_scene_to_image is not supported by this renderer")
}
#[cfg(any(test, feature = "test-support", feature = "bench-support"))]
fn render_scene(&mut self, _scene: &Scene, _size: Size<DevicePixels>) -> anyhow::Result<()> {
Ok(())
}
}