private CXForm parseCXForm(System.String s) { // todo add error checking // must be six parts // each term must be -32768..32767 System.String[] parts = StringUtils.split(s, "([rgb]\\+?| )"); CXForm cxform = new CXForm(); cxform.redAddTerm = System.Int32.Parse(parts[0]); cxform.redMultTerm = System.Int32.Parse(parts[1]); cxform.greenAddTerm = System.Int32.Parse(parts[2]); cxform.greenMultTerm = System.Int32.Parse(parts[3]); cxform.blueAddTerm = System.Int32.Parse(parts[4]); cxform.blueMultTerm = System.Int32.Parse(parts[5]); return cxform; }
private void encodeCxform(CXForm cxform, SwfEncoder w) { w.writeBit(cxform.hasAdd); w.writeBit(cxform.hasMult); int nbits = cxform.nbits(); w.writeUBits(nbits, 4); if (cxform.hasMult) { w.writeSBits(cxform.redMultTerm, nbits); w.writeSBits(cxform.greenMultTerm, nbits); w.writeSBits(cxform.blueMultTerm, nbits); } if (cxform.hasAdd) { w.writeSBits(cxform.redAddTerm, nbits); w.writeSBits(cxform.greenAddTerm, nbits); w.writeSBits(cxform.blueAddTerm, nbits); } w.flushBits(); }