Skip to main content

sge_rendering/d2/
scene.rs

1use crate::api::{draw_scene, draw_scene_to, draw_scene_world};
2
3use super::*;
4
5#[derive(Clone)]
6pub struct Scene2D {
7    pub(crate) draws: Vec<DrawCommand>,
8}
9
10impl Scene2D {
11    pub fn empty() -> Self {
12        Self { draws: vec![] }
13    }
14
15    pub fn clear(&mut self) {
16        self.draws.clear();
17    }
18
19    pub fn renderer(&mut self) -> Renderer2D {
20        Renderer2D {
21            draws: &mut self.draws as *mut Vec<DrawCommand>,
22            ty: RendererType::Scene,
23        }
24    }
25
26    pub fn draw(&self) {
27        draw_scene(self);
28    }
29
30    pub fn draw_world(&self) {
31        draw_scene_world(self);
32    }
33
34    pub fn draw_to(&self, renderer: Renderer2D) {
35        draw_scene_to(self, renderer);
36    }
37}