summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
Diffstat (limited to 'core')
-rw-r--r--core/src/rendering.rs2
-rw-r--r--core/src/runtime.rs13
2 files changed, 13 insertions, 2 deletions
diff --git a/core/src/rendering.rs b/core/src/rendering.rs
index 3f2303b..73daa2a 100644
--- a/core/src/rendering.rs
+++ b/core/src/rendering.rs
@@ -4,6 +4,8 @@ use super::text::{DefinedFontDescription, FontDescription};
4use super::types::DefinedCoreShapeContext; 4use super::types::DefinedCoreShapeContext;
5 5
6pub trait Renderer { 6pub trait Renderer {
7 // Must be called once before any drawing happens
8 fn set_size(&mut self, width: f64, height: f64);
7 fn move_to(&mut self, x: f64, y: f64); 9 fn move_to(&mut self, x: f64, y: f64);
8 fn stroke(&mut self); 10 fn stroke(&mut self);
9 fn fill(&mut self); 11 fn fill(&mut self);
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