Example #1
0
        public override void Draw(SpriteBatch sb)
        {
            GraphicsDevice.Clear(Color.Gray);
            base.Draw(sb);

            Point c = GraphicsDevice.Viewport.Bounds.Center;
            Vector2 catGirlPosition = new Vector2(c.X + 100, c.Y);

            Color color;
            if(lockToGreen)
                color = new Color(greenSlider.Value, greenSlider.Value, greenSlider.Value, alphaSlider.Value);
            else
                color = new Color(redSlider.Value, greenSlider.Value, blueSlider.Value, alphaSlider.Value);

            color = color * multiplySlider.Value;

            BlendState blendState;
            switch (blendMode)
            {
                default:
                case 0: blendState = BlendState.AlphaBlend; break;
                case 1: blendState = BlendState.NonPremultiplied; break;
                case 2: blendState = BlendState.Additive; break;
                case 3: blendState = BlendState.Opaque; break;
            }

            sb.Begin(SpriteSortMode.Deferred, blendState);

            if(displaySecondCatGirl)
            {
                sb.HintDynamicColor(doHinting && blendMode != 0);
                sb.Draw(CatGirl, catGirlSecondRectangle, Color.White * multiplySlider.Value);
            }

            sb.HintDynamicColor(doHinting);
            sb.Draw(CatGirl, catGirlRectangle, color);
            sb.HintDynamicColor(false);

            sb.End();

            sb.Begin();
            sb.DrawString(UIFont, blendState.Name,
                    new Vector2(blendModeButton.Rectangle.X + blendModeButton.Rectangle.Width + 5,
                            blendModeButton.Rectangle.Y), Color.Black);
            sb.End();
        }