sge_rendering/d2/
scene.rs1use 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}