public override void Draw(Painter p) { AggPainter painter = p as AggPainter; if (painter == null) { return; } // painter.Clear(Color.White); int width = painter.Width; int height = painter.Height; //change value *** if (_isMaskSliderValueChanged) { SetupMaskPixelBlender(width, height); _isMaskSliderValueChanged = false; // //painter.DestBitmapBlender.OutputPixelBlender = maskPixelBlender; //change to new blender painter.DestBitmapBlender.OutputPixelBlender = maskPixelBlenderPerCompo; //change to new blender } //1. alpha mask... //p2.DrawImage(alphaBitmap, 0, 0); //2. painter.FillColor = Color.Black; painter.FillRect(0, 0, 200, 100); //3. painter.FillColor = Color.Blue; painter.FillCircle(300, 300, 100); painter.DrawImage(lionImg, 20, 20); ////4. //painter.FillColor = Color.Black; ////this test lcd-effect => we need to draw it 3 times with different color component, on the same position ////(same as we do with OpenGLES rendering surface) //maskPixelBlenderPerCompo.SelectedMaskComponent = PixelBlenderColorComponent.B; //maskPixelBlenderPerCompo.EnableOutputColorComponent = EnableOutputColorComponent.B; //painter.FillRect(0, 0, 200, 100); //maskPixelBlenderPerCompo.SelectedMaskComponent = PixelBlenderColorComponent.G; //maskPixelBlenderPerCompo.EnableOutputColorComponent = EnableOutputColorComponent.G; //painter.FillRect(0, 0, 200, 100); //maskPixelBlenderPerCompo.SelectedMaskComponent = PixelBlenderColorComponent.R; //maskPixelBlenderPerCompo.EnableOutputColorComponent = EnableOutputColorComponent.R; //painter.FillRect(0, 0, 200, 100); }