public static SwfBlendModeData ToBlendModeData( this SwfBlendMode self, System.Action <string> warning_log) { switch (self.Value) { case SwfBlendMode.Mode.Normal: return(new SwfBlendModeData(SwfBlendModeData.Types.Normal)); case SwfBlendMode.Mode.Layer: return(new SwfBlendModeData(SwfBlendModeData.Types.Layer)); case SwfBlendMode.Mode.Multiply: return(new SwfBlendModeData(SwfBlendModeData.Types.Multiply)); case SwfBlendMode.Mode.Screen: return(new SwfBlendModeData(SwfBlendModeData.Types.Screen)); case SwfBlendMode.Mode.Lighten: return(new SwfBlendModeData(SwfBlendModeData.Types.Lighten)); case SwfBlendMode.Mode.Darken: return(new SwfBlendModeData(SwfBlendModeData.Types.Darken)); case SwfBlendMode.Mode.Difference: return(new SwfBlendModeData(SwfBlendModeData.Types.Difference)); case SwfBlendMode.Mode.Add: return(new SwfBlendModeData(SwfBlendModeData.Types.Add)); case SwfBlendMode.Mode.Subtract: return(new SwfBlendModeData(SwfBlendModeData.Types.Subtract)); case SwfBlendMode.Mode.Invert: return(new SwfBlendModeData(SwfBlendModeData.Types.Invert)); case SwfBlendMode.Mode.Overlay: return(new SwfBlendModeData(SwfBlendModeData.Types.Overlay)); case SwfBlendMode.Mode.Hardlight: return(new SwfBlendModeData(SwfBlendModeData.Types.Hardlight)); default: if (warning_log != null) { warning_log(string.Format( "Unsupported blend mode '{0}'", self.Value)); } return(new SwfBlendModeData(SwfBlendModeData.Types.Normal)); } }
public void Read(SwfReader reader, SwfTagCode tagCode) { //state is already read CharId = reader.ReadUInt16(); PlaceDepth = reader.ReadUInt16(); PlaceMatrix = reader.ReadMatrix(); ColorTransform = reader.ReadColorTransform(HasAlpha(tagCode)); if ((State & SwfButtonState.HasFilterList) != 0) { _filters.Read(reader); } if ((State & SwfButtonState.HasBlendMode) != 0) { BlendMode = (SwfBlendMode)reader.ReadUInt8(); } }
public static SwfBlendModeData ToBlendModeData(this SwfBlendMode self) { switch (self.Value) { case SwfBlendMode.Mode.Normal: return(new SwfBlendModeData(SwfBlendModeData.Types.Normal)); case SwfBlendMode.Mode.Layer: return(new SwfBlendModeData(SwfBlendModeData.Types.Layer)); case SwfBlendMode.Mode.Multiply: return(new SwfBlendModeData(SwfBlendModeData.Types.Multiply)); case SwfBlendMode.Mode.Screen: return(new SwfBlendModeData(SwfBlendModeData.Types.Screen)); case SwfBlendMode.Mode.Lighten: return(new SwfBlendModeData(SwfBlendModeData.Types.Lighten)); case SwfBlendMode.Mode.Darken: return(new SwfBlendModeData(SwfBlendModeData.Types.Darken)); case SwfBlendMode.Mode.Difference: return(new SwfBlendModeData(SwfBlendModeData.Types.Difference)); case SwfBlendMode.Mode.Add: return(new SwfBlendModeData(SwfBlendModeData.Types.Add)); case SwfBlendMode.Mode.Subtract: return(new SwfBlendModeData(SwfBlendModeData.Types.Subtract)); case SwfBlendMode.Mode.Invert: return(new SwfBlendModeData(SwfBlendModeData.Types.Invert)); case SwfBlendMode.Mode.Overlay: return(new SwfBlendModeData(SwfBlendModeData.Types.Overlay)); case SwfBlendMode.Mode.Hardlight: return(new SwfBlendModeData(SwfBlendModeData.Types.Hardlight)); default: Debug.LogWarningFormat( "<b>[FlashTools]</b> SwfBlendMode. Unsupported blend mode '{0}'", self.Value); return(new SwfBlendModeData(SwfBlendModeData.Types.Normal)); } }
public static PlaceObject3Tag Create(SwfStreamReader reader) { var tag = new PlaceObject3Tag(); tag.HasClipActions = reader.ReadBit(); tag.HasClipDepth = reader.ReadBit(); tag.HasName = reader.ReadBit(); tag.HasRatio = reader.ReadBit(); tag.HasColorTransform = reader.ReadBit(); tag.HasMatrix = reader.ReadBit(); tag.HasCharacter = reader.ReadBit(); tag.Move = reader.ReadBit(); reader.ReadBit(); // reserved tag.OpaqueBackground = reader.ReadBit(); tag.HasVisible = reader.ReadBit(); tag.HasImage = reader.ReadBit(); tag.HasClassName = reader.ReadBit(); tag.HasCacheAsBitmap = reader.ReadBit(); tag.HasBlendMode = reader.ReadBit(); tag.HasFilterList = reader.ReadBit(); tag.Depth = reader.ReadUInt16(); tag.ClassName = tag.HasClassName ? reader.ReadString() : string.Empty; tag.CharacterId = tag.HasCharacter ? reader.ReadUInt16() : (ushort)0; tag.Matrix = tag.HasMatrix ? SwfMatrix.Read(reader) : SwfMatrix.identity; tag.ColorTransform = tag.HasColorTransform ? SwfColorTransform.Read(reader, true) : SwfColorTransform.identity; tag.Ratio = tag.HasRatio ? reader.ReadUInt16() : (ushort)0; tag.Name = tag.HasName ? reader.ReadString() : string.Empty; tag.ClipDepth = tag.HasClipDepth ? reader.ReadUInt16() : (ushort)0; tag.SurfaceFilters = tag.HasFilterList ? SwfSurfaceFilters.Read(reader) : SwfSurfaceFilters.identity; tag.BlendMode = tag.HasBlendMode ? SwfBlendMode.Read(reader) : SwfBlendMode.identity; tag.BitmapCache = tag.HasCacheAsBitmap ? (0 != reader.ReadByte()) : false; tag.Visible = tag.HasVisible && !reader.IsEOF ? (0 != reader.ReadByte()) : true; tag.BackgroundColor = tag.HasVisible && !reader.IsEOF ? SwfColor.Read(reader, true) : SwfColor.identity; tag.ClipActions = tag.HasClipActions && !reader.IsEOF ? SwfClipActions.Read(reader) : SwfClipActions.identity; return(tag); }