1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141
use avm1::Action; pub mod fills; pub mod filters; pub mod joins; #[derive(Serialize, Deserialize, Debug, PartialEq, Eq)] #[serde(tag = "type", rename_all = "kebab-case")] pub enum Filter { Blur(filters::Blur), } #[derive(Serialize, Deserialize, Debug, PartialEq, Eq)] #[serde(rename_all = "kebab-case")] pub enum BlendMode { Normal, Layer, Multiply, Screen, Lighten, Darken, Difference, Add, Subtract, Invert, Alpha, Erase, Overlay, Hardlight, } #[derive(Serialize, Deserialize, Debug, PartialEq, Eq)] #[serde(rename_all = "kebab-case")] pub enum CapStyle { None, Round, Square, } #[derive(Serialize, Deserialize, Debug, PartialEq, Eq)] #[serde(tag = "type", rename_all = "kebab-case")] pub enum FillStyle { Solid(fills::Solid), } #[derive(Serialize, Deserialize, Debug, PartialEq, Eq)] #[serde(tag = "type", rename_all = "kebab-case")] pub enum JoinStyle { Bevel, Miter(joins::Miter), Round, } #[derive(Serialize, Deserialize, Debug, PartialEq, Eq)] #[serde(rename_all = "snake_case")] pub struct LineStyle { pub width: u16, pub start_cap: CapStyle, pub end_cap: CapStyle, pub join: JoinStyle, pub no_h_scale: bool, pub no_v_scale: bool, pub no_close: bool, pub pixel_hinting: bool, pub fill: FillStyle, } #[derive(Serialize, Deserialize, Debug, PartialEq, Eq)] #[serde(rename_all = "snake_case")] pub struct CurvedEdge { pub control_x: i32, pub control_y: i32, pub delta_x: i32, pub delta_y: i32, } #[derive(Serialize, Deserialize, Debug, PartialEq, Eq)] #[serde(rename_all = "snake_case")] pub struct StraightEdge { pub delta_x: i32, pub delta_y: i32, } #[derive(Serialize, Deserialize, Debug, PartialEq, Eq)] #[serde(rename_all = "snake_case")] pub struct StyleChange { pub delta_x: i32, pub delta_y: i32, pub left_fill: Option<usize>, pub right_fill: Option<usize>, pub line_style: Option<usize>, pub fill_styles: Option<Vec<FillStyle>>, pub line_styles: Option<Vec<LineStyle>>, } #[derive(Serialize, Deserialize, Debug, PartialEq, Eq)] #[serde(tag = "type", rename_all = "kebab-case")] pub enum ShapeRecord { CurvedEdge(CurvedEdge), StraightEdge(StraightEdge), StyleChange(StyleChange), } #[derive(Serialize, Deserialize, Debug, PartialEq, Eq)] #[serde(rename_all = "snake_case")] pub struct Shape { pub fill_styles: Vec<FillStyle>, pub line_styles: Vec<LineStyle>, pub records: Vec<ShapeRecord>, } #[derive(Serialize, Deserialize, Debug, PartialEq, Eq)] #[serde(rename_all = "snake_case")] pub struct ClipEventFlags { pub key_up: bool, pub key_down: bool, pub mouse_up: bool, pub mouse_down: bool, pub unload: bool, pub enter_frane: bool, pub load: bool, pub drag_over: bool, pub roll_out: bool, pub roll_over: bool, pub release_outside: bool, pub release: bool, pub press: bool, pub initialize: bool, pub data: bool, pub construct: bool, pub key_press: bool, pub drag_out: bool, } #[derive(Serialize, Deserialize, Debug, PartialEq, Eq)] #[serde(rename_all = "snake_case")] pub struct ClipAction { pub event_flags: ClipEventFlags, pub key_code: Option<u8>, pub actions: Vec<Action>, }