diff options
author | Minijackson <minijackson@riseup.net> | 2023-01-20 16:03:25 +0100 |
---|---|---|
committer | Minijackson <minijackson@riseup.net> | 2023-01-20 16:03:25 +0100 |
commit | 7b0e215008c94c4a7ddb5f47b12c341d807ea062 (patch) | |
tree | 52aef22ad227e0ad1b39e76574f8f55f70e31875 /core/src | |
parent | e8f8e5aa2f4a2372452e77ffe1cf8a035ce8cf8a (diff) | |
download | diaphragm-7b0e215008c94c4a7ddb5f47b12c341d807ea062.tar.gz diaphragm-7b0e215008c94c4a7ddb5f47b12c341d807ea062.zip |
tree-wide: properly set figure size
Diffstat (limited to 'core/src')
-rw-r--r-- | core/src/rendering.rs | 2 | ||||
-rw-r--r-- | core/src/runtime.rs | 13 |
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}; | |||
4 | use super::types::DefinedCoreShapeContext; | 4 | use super::types::DefinedCoreShapeContext; |
5 | 5 | ||
6 | pub trait Renderer { | 6 | pub 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 @@ | |||
1 | use crate::core_shapes::CoreDrawable; | 1 | use crate::core_shapes::CoreDrawable; |
2 | use crate::rendering::Render; | 2 | use crate::rendering::Render; |
3 | use crate::types::Bounds; | ||
3 | 4 | ||
4 | // use super::complex_shapes::{ComplexShape, Drawable}; | 5 | // use super::complex_shapes::{ComplexShape, Drawable}; |
5 | use super::rendering::Renderer; | 6 | use 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 | ||