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