From 1f6aa4e4e1d8e6d56ca508d1f371a2aca5db11bd Mon Sep 17 00:00:00 2001 From: Mike Welsh Date: Fri, 3 May 2019 14:25:54 -0700 Subject: [PATCH] Add MorphShape stub --- core/src/morph_shape.rs | 49 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 core/src/morph_shape.rs diff --git a/core/src/morph_shape.rs b/core/src/morph_shape.rs new file mode 100644 index 000000000..5e045daf7 --- /dev/null +++ b/core/src/morph_shape.rs @@ -0,0 +1,49 @@ +use crate::backend::render::ShapeHandle; +use crate::color_transform::ColorTransform; +use crate::display_object::{DisplayObjectBase, DisplayObjectImpl, DisplayObjectUpdate}; +use crate::matrix::Matrix; +use crate::player::{RenderContext, UpdateContext}; +use bacon_rajan_cc::{Trace, Tracer}; +use swf::DefineMorphShape; + +pub struct MorphShape { + base: DisplayObjectBase, + shape_handle: ShapeHandle, + x_min: f32, + y_min: f32, +} + +impl MorphShape { + pub fn new(swf_tag: &DefineMorphShape) -> MorphShape { + Graphic { + base: Default::default(), + shape_handle, + x_min, + y_min, + } + } +} + +impl_display_object!(MorphShape, base); + +impl DisplayObjectUpdate for MorphShape { + fn run_frame(&mut self, _context: &mut UpdateContext) { + // Noop + } + + fn render(&self, context: &mut RenderContext) { + context.transform_stack.push(self.transform()); + + context + .renderer + .render_shape(self.shape_handle, context.transform_stack.transform()); + + context.transform_stack.pop(); + } +} + +impl Trace for MorphShape { + fn trace(&mut self, _tracer: &mut Tracer) { + // Noop + } +}