Exemplo n.º 1
0
        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));
            }
        }
Exemplo n.º 2
0
 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));
            }
        }
Exemplo n.º 4
0
        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);
        }