コード例 #1
0
		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;
		}
コード例 #2
0
		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();
		}