2 +----------------------------------------------------------------------+
3 | Author: yoya@awm.jp |
4 +----------------------------------------------------------------------+
7 #ifndef __SWF_MATRIX_H__
8 #define __SWF_MATRIX_H__
10 typedef struct swf_matrix_ {
12 unsigned char has_scale:1;
13 unsigned char scale_bits; // : 5;
14 signed long scale_x; // : scale_bits; n.16 fixed point
15 signed long scale_y; // : scale_bits; n.16 fixed point
17 unsigned has_rotate : 1;
18 unsigned rotate_bits; // : 5;
19 signed long rotate_skew0; // : rotate_bits; n.16 fixed point
20 signed long rotate_skew1; // : rotate_bits; n.16 fixed point
22 unsigned translate_bits; // : f_rotate_bits;
23 signed translate_x; // : f_rotate_bits;
24 signed translate_y; // : f_rotate_bits;
27 extern int swf_matrix_parse(bitstream_t *bs, swf_matrix_t *matrix);
28 extern int swf_matrix_build(bitstream_t *bs, swf_matrix_t *matrix);
29 extern int swf_matrix_print(swf_matrix_t *matrix, int indent_depth);
31 extern int swf_matrix_apply_factor(swf_matrix_t *matrix,
32 double scale_x, double scale_y,
34 signed int trans_x, signed int trans_y);
36 #endif /* __SWF_MATRIX_H__ */