3 #include "swf_cxformwithalpha.h"
6 swf_cxformwithalpha_parse(bitstream_t *bs, swf_cxformwithalpha_t *cx) {
9 cx->has_add_terms = bitstream_getbit(bs);
10 cx->has_mult_terms = bitstream_getbit(bs);
11 nbits = bitstream_getbits(bs, 4);
13 if (cx->has_mult_terms) {
14 cx->red_mult_term = bitstream_getbits(bs, nbits);
15 cx->green_mult_term = bitstream_getbits(bs, nbits);
16 cx->blue_mult_term = bitstream_getbits(bs, nbits);
17 ret = bitstream_getbits(bs, nbits);
21 cx->alpha_mult_term = ret;
23 if (cx->has_add_terms) {
24 cx->red_add_term = bitstream_getbits(bs, nbits);
25 cx->green_add_term = bitstream_getbits(bs, nbits);
26 cx->blue_add_term = bitstream_getbits(bs, nbits);
27 ret = bitstream_getbits(bs, nbits);
31 cx->alpha_add_term = ret;
37 swf_cxformwithalpha_build(bitstream_t *bs, swf_cxformwithalpha_t *cx) {
40 bitstream_putbit(bs, cx->has_add_terms);
41 bitstream_putbit(bs, cx->has_mult_terms);
43 bitstream_putbits(bs, nbits, 4);
44 if (cx->has_mult_terms) {
45 bitstream_putbits(bs, cx->red_mult_term, nbits);
46 bitstream_putbits(bs, cx->green_mult_term, nbits);
47 bitstream_putbits(bs, cx->blue_mult_term, nbits);
48 bitstream_putbits(bs, cx->alpha_mult_term, nbits);
50 if (cx->has_add_terms) {
51 bitstream_putbits(bs, cx->red_add_term, nbits);
52 bitstream_putbits(bs, cx->green_add_term, nbits);
53 bitstream_putbits(bs, cx->blue_add_term, nbits);
54 bitstream_putbits(bs, cx->alpha_add_term, nbits);
60 swf_cxformwithalpha_print(swf_cxformwithalpha_t *cx, int indent_depth) {
61 print_indent(indent_depth);
62 printf("CXFORMWITHALPHA:");
63 if (cx->has_mult_terms) {
64 printf(" MultTerm:%02x%02x%02x(%02x)",
65 cx->red_mult_term, cx->green_mult_term, cx->blue_mult_term,
68 if (cx->has_add_terms) {
69 printf(" AddTerm:%02x%02x%02x(%02x)",
70 cx->red_add_term, cx->green_add_term, cx->blue_add_term,
73 if ((cx->has_add_terms == 0) && (cx->has_mult_terms == 0)) {
74 printf(" (no add_terms or mult_terms)");