Esempio n. 1
0
 public LayerAttributes()
 {
     this.surface          = null;
     this.color            = Color.white;
     this.maskType         = (int)LayerMaskType.None;
     this.maskParameters   = Vector4.zero;
     this.maskAxis         = new Vector4(0.0f, 1.0f, 0.0f, 0.0f);
     this.sampleMode       = (int)LayerSampleMode.Color;
     this.sampleParameters = new Vector4(1.0f, 1.0f, 1.0f, 1.0f);
     this.blendMode        = (int)LayerBlendMode.Add;
 }
Esempio n. 2
0
 private void SelectBlendMode(LayerBlendMode blendMode)
 {
     foreach (BlendModeComboBoxItem item in this.blendOpComboBox.Items)
     {
         if (item.BlendMode == blendMode)
         {
             this.blendOpComboBox.SelectedItem = item;
             break;
         }
     }
 }
Esempio n. 3
0
	public BlockLayer(LayerBlendMode b) {
		colorMap = new Color[BlockEditor.textureSize, BlockEditor.textureSize];
		blendMode = b;

		//Temp
		for (int x = 0; x < colorMap.GetLength(0); x++) {
			for (int y = 0; y < colorMap.GetLength(1); y++) {
				//colorMap[x, y] = new Color(Random.Range(0f, 1f), Random.Range(0f, 1f), Random.Range(0f, 1f));
				colorMap[x, y] = new Color(0f, 0f, 0f, 0f);
			}
		}
	}
Esempio n. 4
0
        public LayerMixerNodeInputPort CreateInputPort(LayerBlendMode blendMode, float weight = 1f, AvatarMask avatarMask = null)
        {
            LayerMixerNodeInputPort port = new LayerMixerNodeInputPort {
                Node = this, Weight = weight, BlendMode = blendMode, AvatarMask = avatarMask
            };

            SetupInputPort(port, weight);

            SetBlendMode(port, blendMode);
            SetAvatarMask(port, avatarMask);

            return(port);
        }
Esempio n. 5
0
        /// <summary>
        /// Convert between Paint.NET and Photoshop blend modes.
        /// </summary>
        public static string ToPsdBlendMode(this LayerBlendMode pdnBlendMode)
        {
            switch (pdnBlendMode)
            {
            case LayerBlendMode.Normal:
                return(PsdBlendMode.Normal);

            case LayerBlendMode.Multiply:
                return(PsdBlendMode.Multiply);

            case LayerBlendMode.Additive:
                return(PsdBlendMode.LinearDodge);

            case LayerBlendMode.ColorBurn:
                return(PsdBlendMode.ColorBurn);

            case LayerBlendMode.ColorDodge:
                return(PsdBlendMode.ColorDodge);

            case LayerBlendMode.Overlay:
                return(PsdBlendMode.Overlay);

            case LayerBlendMode.Difference:
                return(PsdBlendMode.Difference);

            case LayerBlendMode.Lighten:
                return(PsdBlendMode.Lighten);

            case LayerBlendMode.Darken:
                return(PsdBlendMode.Darken);

            case LayerBlendMode.Screen:
                return(PsdBlendMode.Screen);

            // Paint.NET blend modes without a Photoshop equivalent are saved
            // as Normal.
            case LayerBlendMode.Glow:
            case LayerBlendMode.Negation:
            case LayerBlendMode.Reflect:
            case LayerBlendMode.Xor:
                return(PsdBlendMode.Normal);

            default:
                Debug.Fail("Unknown Paint.NET blend mode.");
                return(PsdBlendMode.Normal);
            }
        }
Esempio n. 6
0
        public List <Texture2D> GetLayerTexture(int layerIndex, LayerChunk layer)
        {
            List <LayerChunk> layers   = GetChunks <LayerChunk>();
            List <Texture2D>  textures = new List <Texture2D>();

            for (int frameIndex = 0; frameIndex < Frames.Count; frameIndex++)
            {
                Frame           frame = Frames[frameIndex];
                List <CelChunk> cels  = frame.GetChunks <CelChunk>();

                for (int i = 0; i < cels.Count; i++)
                {
                    if (cels[i].LayerIndex != layerIndex)
                    {
                        continue;
                    }

                    LayerBlendMode blendMode = layer.BlendMode;
                    float          opacity   = Mathf.Min(layer.Opacity / 255f, cels[i].Opacity / 255f);

                    bool visibility = layer.Visible;

                    LayerChunk parent = GetParentLayer(layer);
                    while (parent != null)
                    {
                        visibility &= parent.Visible;
                        if (visibility == false)
                        {
                            break;
                        }

                        parent = GetParentLayer(parent);
                    }

                    if (visibility == false || layer.LayerType == LayerType.Group)
                    {
                        continue;
                    }

                    textures.Add(GetTextureFromCel(cels[i]));
                }
            }

            return(textures);
        }
Esempio n. 7
0
 public LayerAttributes(
     Texture surface,
     Color color,
     LayerMaskType maskType,
     Vector3 maskParameters,
     Vector4 maskAxis,
     LayerSampleMode sampleMode,
     Vector4 sampleParameters,
     LayerBlendMode blendMode
 ) {
     this.surface = surface:
     this.color = color:
     this.maskType = maskType:
     this.maskParameters = maskParameters:
     this.maskAxis = maskAxis:
     this.sampleMode = sampleMode:
     this.sampleParameters = sampleParameters:
     this.blendMode = blendMode:
 }
Esempio n. 8
0
            public LayerProperties(SerializationInfo info, StreamingContext context)
            {
                this._name         = info.GetString("name");
                this._visible      = info.GetBoolean("visible");
                this._isBackground = info.GetBoolean("isBackground");
                if (!info.TryGetValue <byte>("opacity", out this._opacity))
                {
                    this._opacity = byte.MaxValue;
                }

                if (!info.TryGetValue <LayerBlendMode>("blendMode", out this._blendMode))
                {
                    this._blendMode = LayerBlendMode.Normal;
                }

                if (Enum.IsDefined(typeof(LayerBlendMode), (object)this._blendMode))
                {
                    return;
                }

                this._blendMode = LayerBlendMode.Normal;

                // userMetadataItems - NameValueCollection
            }
Esempio n. 9
0
        public Texture2D GetFrame(int index)
        {
            Frame frame = Frames[index];

            Texture2D texture = Texture2DUtil.CreateTransparentTexture(Header.Width, Header.Height);


            List <LayerChunk> layers = GetChunks <LayerChunk>();
            List <CelChunk>   cels   = frame.GetChunks <CelChunk>();

            cels.Sort((ca, cb) => ca.LayerIndex.CompareTo(cb.LayerIndex));

            for (int i = 0; i < cels.Count; i++)
            {
                LayerChunk layer = layers[cels[i].LayerIndex];

                LayerBlendMode blendMode = layer.BlendMode;
                float          opacity   = Mathf.Min(layer.Opacity / 255f, cels[i].Opacity / 255f);

                bool visibility = layer.Visible;


                LayerChunk parent = GetParentLayer(layer);
                while (parent != null)
                {
                    visibility &= parent.Visible;
                    if (visibility == false)
                    {
                        break;
                    }

                    parent = GetParentLayer(parent);
                }

                if (visibility == false || layer.LayerType == LayerType.Group)
                {
                    continue;
                }

                Texture2D celTex = GetTextureFromCel(cels[i]);

                switch (blendMode)
                {
                case LayerBlendMode.Normal: texture = Texture2DBlender.Normal(texture, celTex); break;

                case LayerBlendMode.Multiply: texture = Texture2DBlender.Multiply(texture, celTex, opacity); break;

                case LayerBlendMode.Screen: texture = Texture2DBlender.Screen(texture, celTex); break;

                case LayerBlendMode.Overlay: texture = Texture2DBlender.Overlay(texture, celTex); break;

                case LayerBlendMode.Darken: texture = Texture2DBlender.Darken(texture, celTex); break;

                case LayerBlendMode.Lighten: texture = Texture2DBlender.Lighten(texture, celTex); break;

                case LayerBlendMode.ColorDodge: texture = Texture2DBlender.ColorDodge(texture, celTex); break;

                case LayerBlendMode.ColorBurn: texture = Texture2DBlender.ColorBurn(texture, celTex); break;

                case LayerBlendMode.HardLight: texture = Texture2DBlender.HardLight(texture, celTex); break;

                case LayerBlendMode.SoftLight: texture = Texture2DBlender.SoftLight(texture, celTex); break;

                case LayerBlendMode.Difference: texture = Texture2DBlender.Difference(texture, celTex); break;

                case LayerBlendMode.Exclusion: texture = Texture2DBlender.Exclusion(texture, celTex); break;

                case LayerBlendMode.Hue: texture = Texture2DBlender.Hue(texture, celTex); break;

                case LayerBlendMode.Saturation: texture = Texture2DBlender.Saturation(texture, celTex); break;

                case LayerBlendMode.Color: texture = Texture2DBlender.Color(texture, celTex); break;

                case LayerBlendMode.Luminosity: texture = Texture2DBlender.Luminosity(texture, celTex); break;

                case LayerBlendMode.Addition: texture = Texture2DBlender.Addition(texture, celTex); break;

                case LayerBlendMode.Subtract: texture = Texture2DBlender.Subtract(texture, celTex); break;

                case LayerBlendMode.Divide: texture = Texture2DBlender.Divide(texture, celTex); break;
                }
            }



            return(texture);
        }
Esempio n. 10
0
 public BlendModeComboBoxItem(LayerBlendMode blendMode)
 {
     this.blendMode = blendMode;
 }
Esempio n. 11
0
 public void SetBlendMode(int inputPortIndex, LayerBlendMode blendMode)
 {
     ((AnimationLayerMixerPlayable)Playable).SetLayerAdditive((uint)inputPortIndex, blendMode == LayerBlendMode.Additive);
 }
Esempio n. 12
0
 public void SetBlendMode(LayerMixerNodeInputPort inputPort, LayerBlendMode blendMode)
 {
     inputPort.BlendMode = blendMode;
     SetBlendMode(inputPort.Index, blendMode);
 }
Esempio n. 13
0
 public NodeLink Connect(NodeOutputPort outputPort, LayerBlendMode blendMode, float weight = 1f, AvatarMask mask       = null) => Connect(CreateInputPort(blendMode, weight, mask), outputPort);
Esempio n. 14
0
 public NodeLink Connect(BaseNode sourceNode, LayerBlendMode blendMode, float weight       = 1f, AvatarMask avatarMask = null) => Connect(sourceNode.CreateOutputPort(), blendMode, weight, avatarMask);
Esempio n. 15
0
        BlendMode ConvertBlendMode(LayerBlendMode blendMode)
        {
            switch (blendMode)
            {
            case LayerBlendMode.Normal:
            {
                return(BlendMode.Normal);
            }

            case LayerBlendMode.Multiply:
            {
                return(BlendMode.Multiply);
            }

            case LayerBlendMode.ColorBurn:
            {
                return(BlendMode.ColorBurn);
            }

            case LayerBlendMode.ColorDodge:
            {
                return(BlendMode.ColorDodge);
            }

            case LayerBlendMode.Overlay:
            {
                return(BlendMode.Overlay);
            }

            case LayerBlendMode.Difference:
            {
                return(BlendMode.Difference);
            }

            case LayerBlendMode.Lighten:
            {
                return(BlendMode.Lighten);
            }

            case LayerBlendMode.Darken:
            {
                return(BlendMode.Darken);
            }

            case LayerBlendMode.Screen:
            {
                return(BlendMode.Screen);
            }

            case LayerBlendMode.Xor:
            {
                return(BlendMode.Xor);
            }
            // not supported by pinta
            //            case LayerBlendMode.Reflect:
            //                {
            //                }
            //            case LayerBlendMode.Glow:
            //                {
            //                }
            //            case LayerBlendMode.Negation:
            //                {
            //                }
            //            case LayerBlendMode.Additive:
            //                {
            //                }

            default:
                return(BlendMode.Normal);
            }
        }
Esempio n. 16
0
        public Texture2D GetFrame(int index)
        {
            Frame frame = Frames[index];


            Texture2D texture = Texture2DUtil.CreateTransparentTexture(Header.Width, Header.Height);


            List <LayerChunk> layers = GetChunks <LayerChunk>();
            List <CelChunk>   cels   = frame.GetChunks <CelChunk>();

            cels.Sort((ca, cb) => ca.LayerIndex.CompareTo(cb.LayerIndex));

            for (int i = 0; i < cels.Count; i++)
            {
                LayerBlendMode blendMode = layers[cels[i].LayerIndex].BlendMode;
                float          opacity   = layers[cels[i].LayerIndex].Opacity / 255f;

                Texture2D celTex = GetTextureFromCel(cels[i]);

                switch (blendMode)
                {
                case LayerBlendMode.Normal: texture = Texture2DBlender.Normal(texture, celTex); break;

                case LayerBlendMode.Multiply: texture = Texture2DBlender.Multiply(texture, celTex, opacity); break;

                case LayerBlendMode.Screen: texture = Texture2DBlender.Screen(texture, celTex); break;

                case LayerBlendMode.Overlay: texture = Texture2DBlender.Overlay(texture, celTex); break;

                case LayerBlendMode.Darken: texture = Texture2DBlender.Darken(texture, celTex); break;

                case LayerBlendMode.Lighten: texture = Texture2DBlender.Lighten(texture, celTex); break;

                case LayerBlendMode.ColorDodge: texture = Texture2DBlender.ColorDodge(texture, celTex); break;

                case LayerBlendMode.ColorBurn: texture = Texture2DBlender.ColorBurn(texture, celTex); break;

                case LayerBlendMode.HardLight: texture = Texture2DBlender.HardLight(texture, celTex); break;

                case LayerBlendMode.SoftLight: texture = Texture2DBlender.SoftLight(texture, celTex); break;

                case LayerBlendMode.Difference: texture = Texture2DBlender.Difference(texture, celTex); break;

                case LayerBlendMode.Exclusion: texture = Texture2DBlender.Exclusion(texture, celTex); break;

                case LayerBlendMode.Hue: texture = Texture2DBlender.Hue(texture, celTex); break;

                case LayerBlendMode.Saturation: texture = Texture2DBlender.Saturation(texture, celTex); break;

                case LayerBlendMode.Color: texture = Texture2DBlender.Color(texture, celTex); break;

                case LayerBlendMode.Luminosity: texture = Texture2DBlender.Luminosity(texture, celTex); break;

                case LayerBlendMode.Addition: texture = Texture2DBlender.Addition(texture, celTex); break;

                case LayerBlendMode.Subtract: texture = Texture2DBlender.Subtract(texture, celTex); break;

                case LayerBlendMode.Divide: texture = Texture2DBlender.Divide(texture, celTex); break;
                }
            }



            return(texture);
        }