1use ::serde::{Deserialize, Serialize};
2
3use crate::basic_types::{Matrix, StraightSRgba8};
4use crate::fixed::Sfixed8P8;
5use crate::gradient::{Gradient, MorphGradient};
6
7#[derive(Copy, Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Hash, Serialize, Deserialize)]
8pub struct Bitmap {
9 pub bitmap_id: u16,
10 pub matrix: Matrix,
11 pub repeating: bool,
12 pub smoothed: bool,
13}
14
15#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Hash, Serialize, Deserialize)]
16pub struct FocalGradient {
17 pub matrix: Matrix,
18 pub gradient: Gradient,
19 pub focal_point: Sfixed8P8,
20}
21
22#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Hash, Serialize, Deserialize)]
23pub struct LinearGradient {
24 pub matrix: Matrix,
25 pub gradient: Gradient,
26}
27
28#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Hash, Serialize, Deserialize)]
29pub struct RadialGradient {
30 pub matrix: Matrix,
31 pub gradient: Gradient,
32}
33
34#[derive(Copy, Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Hash, Serialize, Deserialize)]
35pub struct Solid {
36 pub color: StraightSRgba8,
37}
38
39#[derive(Copy, Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Hash, Serialize, Deserialize)]
40pub struct MorphBitmap {
41 pub bitmap_id: u16,
42 pub matrix: Matrix,
43 pub morph_matrix: Matrix,
44 pub repeating: bool,
45 pub smoothed: bool,
46}
47
48#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Hash, Serialize, Deserialize)]
49pub struct MorphFocalGradient {
50 pub matrix: Matrix,
51 pub morph_matrix: Matrix,
52 pub gradient: MorphGradient,
53 pub focal_point: Sfixed8P8,
54 pub morph_focal_point: Sfixed8P8,
55}
56
57#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Hash, Serialize, Deserialize)]
58pub struct MorphLinearGradient {
59 pub matrix: Matrix,
60 pub morph_matrix: Matrix,
61 pub gradient: MorphGradient,
62}
63
64#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Hash, Serialize, Deserialize)]
65pub struct MorphRadialGradient {
66 pub matrix: Matrix,
67 pub morph_matrix: Matrix,
68 pub gradient: MorphGradient,
69}
70
71#[derive(Copy, Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Hash, Serialize, Deserialize)]
72pub struct MorphSolid {
73 pub color: StraightSRgba8,
74 pub morph_color: StraightSRgba8,
75}