예제 #1
0
        public void SetBlendOp(UserBlendOp blendOp)
        {
            if (disposed)
            {
                throw new ObjectDisposedException("BitmapLayer");
            }

            if (blendOp.GetType() != properties.blendOp.GetType())
            {
                OnPropertyChanging(BitmapLayerProperties.BlendOpName);
                properties.blendOp = blendOp;
                compiledBlendOp    = null;
                Invalidate();
                OnPropertyChanged(BitmapLayerProperties.BlendOpName);
            }
        }
예제 #2
0
        private static PSPBlendModes BlendOptoBlendMode(UserBlendOp op)
        {
            Type opType = op.GetType();

            if (opType == typeof(UserBlendOps.NormalBlendOp))
            {
                return(PSPBlendModes.Normal);
            }
            else if (opType == typeof(UserBlendOps.ColorBurnBlendOp))
            {
                return(PSPBlendModes.Burn);
            }
            else if (opType == typeof(UserBlendOps.ColorDodgeBlendOp))
            {
                return(PSPBlendModes.Dodge);
            }
            else if (opType == typeof(UserBlendOps.DarkenBlendOp))
            {
                return(PSPBlendModes.Darken);
            }
            else if (opType == typeof(UserBlendOps.DifferenceBlendOp))
            {
                return(PSPBlendModes.Difference);
            }
            else if (opType == typeof(UserBlendOps.LightenBlendOp))
            {
                return(PSPBlendModes.Lighten);
            }
            else if (opType == typeof(UserBlendOps.MultiplyBlendOp))
            {
                return(PSPBlendModes.Multiply);
            }
            else if (opType == typeof(UserBlendOps.OverlayBlendOp))
            {
                return(PSPBlendModes.Overlay);
            }
            else if (opType == typeof(UserBlendOps.ScreenBlendOp))
            {
                return(PSPBlendModes.Screen);
            }

            return(PSPBlendModes.Normal);
        }