/// <summary> /// /// </summary> /// <param name="input"></param> public void Parse( Stream input ) { BinaryReader2 br = new BinaryReader2( input ); _numFilters = br.ReadByte(); _Filters = new List<AbstractFilter>( _numFilters ); for ( int i = 0; i < _numFilters; i++ ) { AbstractFilter.FilterTypes nextFilterType = ( AbstractFilter.FilterTypes )br.ReadByte(); AbstractFilter aFilter; switch ( nextFilterType ) { case AbstractFilter.FilterTypes.DropShadowFilter: aFilter = new Filter.DropShadowFilter( this.Version ); break; case AbstractFilter.FilterTypes.BevelFilter: aFilter = new Filter.BevelFilter( this.Version ); break; case AbstractFilter.FilterTypes.BlurFilter: aFilter = new Filter.BlurFilter( this.Version ); break; case AbstractFilter.FilterTypes.ColorMatrixFilter: aFilter = new Filter.ColorMatrixFilter( this.Version ); break; case AbstractFilter.FilterTypes.ConvolutionFilter: aFilter = new Filter.ConvolutionFilter( this.Version ); break; case AbstractFilter.FilterTypes.GlowFilter: aFilter = new Filter.GlowFilter( this.Version ); break; case AbstractFilter.FilterTypes.GradientBevelFilter: aFilter = new Filter.GradientBevelFilter( this.Version ); break; case AbstractFilter.FilterTypes.GradientGlowFilter: aFilter = new Filter.GradientGlowFilter( this.Version ); break; default: SwfFormatException e = new SwfFormatException( "Illegal Filter Type ID " + nextFilterType.ToString( "d" ) ); Log.Error(this, e ); throw e; } aFilter.Parse( input ); _Filters.Add( aFilter ); } }