From 1f85a779acc001ade1faad72b45e3fbe6e97a3ca Mon Sep 17 00:00:00 2001 From: Mike Welsh Date: Thu, 29 Aug 2019 14:01:33 -0700 Subject: [PATCH] Bitmap smoothing is only an option in SWFv8+ --- src/read.rs | 3 ++- src/write.rs | 8 ++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/read.rs b/src/read.rs index 06bc1641b..8ba8ad983 100644 --- a/src/read.rs +++ b/src/read.rs @@ -1728,7 +1728,8 @@ impl Reader { 0x40..=0x43 => FillStyle::Bitmap { id: self.read_u16()?, matrix: self.read_matrix()?, - is_smoothed: (fill_style_type & 0b10) == 0, + // Bitmap smoothing only occurs in SWF version 8+. + is_smoothed: self.version >= 8 && (fill_style_type & 0b10) == 0, is_repeating: (fill_style_type & 0b01) == 0, }, diff --git a/src/write.rs b/src/write.rs index 69a0634dc..dca12b56a 100644 --- a/src/write.rs +++ b/src/write.rs @@ -1048,7 +1048,9 @@ impl Writer { } } - Tag::DefineSceneAndFrameLabelData(ref data) => self.write_define_scene_and_frame_label_data(data)?, + Tag::DefineSceneAndFrameLabelData(ref data) => { + self.write_define_scene_and_frame_label_data(data)? + } Tag::ProductInfo(ref product_info) => self.write_product_info(product_info)?, Tag::DebugId(ref debug_id) => self.write_debug_id(debug_id)?, @@ -1806,7 +1808,9 @@ impl Writer { is_smoothed, is_repeating, } => { - let fill_style_type = match (is_smoothed, is_repeating) { + // Bitmap smoothing only an option in SWF version 8+. + // Lower versions use 0x40 and 0x41 type even when unsmoothed. + let fill_style_type = match (is_smoothed || self.version < 8, is_repeating) { (true, true) => 0x40, (true, false) => 0x41, (false, true) => 0x42,