summaryrefslogtreecommitdiffstats
path: root/core/src/runtime.rs
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/runtime.rs')
-rw-r--r--core/src/runtime.rs13
1 files changed, 11 insertions, 2 deletions
diff --git a/core/src/runtime.rs b/core/src/runtime.rs
index d70e4d0..6b1b5d1 100644
--- a/core/src/runtime.rs
+++ b/core/src/runtime.rs
@@ -1,5 +1,6 @@
1use crate::core_shapes::CoreDrawable; 1use crate::core_shapes::CoreDrawable;
2use crate::rendering::Render; 2use crate::rendering::Render;
3use crate::types::Bounds;
3 4
4// use super::complex_shapes::{ComplexShape, Drawable}; 5// use super::complex_shapes::{ComplexShape, Drawable};
5use super::rendering::Renderer; 6use super::rendering::Renderer;
@@ -40,14 +41,22 @@ impl<'a> Runtime<'a> {
40 &mut *self.renderer 41 &mut *self.renderer
41 } 42 }
42 43
43 pub fn render(mut self) { 44 pub fn render(mut self, bounds: Bounds) {
44 let model = self.solver_ctx.solve(); 45 let model = self.solver_ctx.solve();
45 46
47 let bounds = bounds
48 .fixate(&*model)
49 .expect("Could not fixate figure bounds");
50
51 self.renderer.set_size(bounds.width, bounds.height);
52
46 for drawable in &self.drawables { 53 for drawable in &self.drawables {
47 let defined_drawable = drawable 54 let defined_drawable = drawable
48 .fixate(&*model) 55 .fixate(&*model)
49 .expect("Could not fixate core shape"); 56 .expect("Could not fixate core shape");
50 defined_drawable.shape.render(defined_drawable.context, &mut *self.renderer); 57 defined_drawable
58 .shape
59 .render(defined_drawable.context, &mut *self.renderer);
51 } 60 }
52 } 61 }
53 62