Recurity.Swf.CxFormWithAlpha.Write C# (CSharp) Method

Write() public method

public Write ( Stream output ) : void
output Stream
return void
        public void Write( Stream output )
        {
            BitStream bits = new BitStream( output );

            int maxBits = this.BitCount;

            if ( 0 == maxBits )
            {
                //
                // special case: must be byte-aligned by hand
                //
                bits.WriteBits( 2, 0 ); // has no Terms whatsoever
                bits.WriteBits( 4, 1 ); // 1 Bit per nothing
                bits.WriteBits( 2, 0 ); // nothing
            }
            else
            {
                bits.WriteBits( 1, ( _HasAddTerms ? 1 : 0 ) );
                bits.WriteBits( 1, ( _HasMultTerms ? 1 : 0 ) );
                bits.WriteBits( 4, maxBits );

                if ( _HasMultTerms )
                {
                    bits.WriteBits( maxBits, _RedMultTerm );
                    bits.WriteBits( maxBits, _GreenMultTerm );
                    bits.WriteBits( maxBits, _BlueMultTerm );
                    bits.WriteBits( maxBits, _AlphaMultTerm );
                }
                if ( _HasAddTerms )
                {
                    bits.WriteBits( maxBits, _RedAddTerm );
                    bits.WriteBits( maxBits, _GreenAddTerm );
                    bits.WriteBits( maxBits, _BlueAddTerm );
                    bits.WriteBits( maxBits, _AlphaAddTerm );
                }
            }
            bits.WriteFlush();
        }