Beispiel #1
0
        public override void Load()
        {
            //-----------------------------------------------
            FormTestWinGLControl form   = new FormTestWinGLControl();
            CanvasGL2d           canvas = new CanvasGL2d(this.Width, this.Height);
            var lionFill = new LionFillSprite();

            //-----------------------------------------------
            form.SetGLPaintHandler((o, s) =>
            {
                //canvas.Orientation = PixelFarm.Drawing.CanvasOrientation.LeftTop;
                canvas.Clear(PixelFarm.Drawing.Color.White);
                canvas.FillRect(PixelFarm.Drawing.Color.Blue, 0, 0, 400, 400);
                //draw vxs direct to GL surface
                //lionFill.Draw(canvas); //before offset

                canvas.EnableClipRect();
                canvas.SetClipRectRel(200, 250, 100, 100);

                lionFill.Draw(canvas);
                //offset
                canvas.SetCanvasOrigin(50, 50);
                //test clipping
                canvas.SetClipRectRel(200, 250, 100, 100);

                lionFill.Draw(canvas);
                canvas.DisableClipRect();


                canvas.SetCanvasOrigin(0, 0);
            });
            form.Show();
        }
Beispiel #2
0
        public override void Load()
        {
            //-----------------------------------------------
            FormTestWinGLControl form   = new FormTestWinGLControl();
            CanvasGL2d           canvas = new CanvasGL2d(this.Width, this.Height);
            var lionFill = new LionFillSprite();
            //-----------------------------------------------

            GLBitmap bmp1 = null;
            int      bmpW = 0;
            int      bmpH = 0;

            form.SetGLPaintHandler((o, s) =>
            {
                canvas.Clear(PixelFarm.Drawing.Color.White);

                //since OpenGL < 3 dose not have FrameBuffer
                //so we first draw it to backbuffer
                //then copy data from back buffer to texture
                if (bmp1 == null)
                {
                    lionFill.Draw(canvas);

                    GL.ReadBuffer(ReadBufferMode.Back);
                    Bitmap bmp           = new Bitmap(800, 600, System.Drawing.Imaging.PixelFormat.Format32bppRgb);
                    byte[] buffer_output = new byte[800 * 4 * 600];
                    var bmpdata          = bmp.LockBits(
                        new Rectangle(0, 0, 800, 600),
                        System.Drawing.Imaging.ImageLockMode.ReadWrite,
                        bmp.PixelFormat);
                    GL.ReadPixels(0, 0, 800, 600, PixelFormat.Bgra, PixelType.Byte, bmpdata.Scan0);
                    unsafe
                    {
                        fixed(byte *outputH = &buffer_output[0])
                        {
                            GL.ReadPixels(0, 0, 800, 600, PixelFormat.Bgra, PixelType.Byte, (IntPtr)outputH);
                        }
                    }
                    bmp.UnlockBits(bmpdata);
                    //save
                    bmp.Save("d:\\WImageTest\\glLion.png");
                    //---------
                    //canvas.DrawImage(GLBitmapTexture.CreateBitmapTexture(bmp), 0, 0, bmp.Width, bmp.Height);
                    bmp1 = PixelFarm.Drawing.DrawingGL.GLBitmapTextureHelper.CreateBitmapTexture(bmp);
                    bmpW = bmp.Width;
                    bmpH = bmp.Height;

                    canvas.Clear(PixelFarm.Drawing.Color.White);
                }
                canvas.DrawImage(bmp1, 0, 0, bmpW, bmpH);

                //canvas.Clear(PixelFarm.Drawing.Color.White);
            });
            form.Show();
        }
        public override void Load()
        {
            //lion fill test
            FormTestWinGLControl form   = new FormTestWinGLControl();
            CanvasGL2d           canvas = new CanvasGL2d(this.Width, this.Height);
            var lionFill = new LionFillSprite();
            //----------
            //draw lion on software layer
            ActualImage actualImage = new ActualImage(800, 600, PixelFarm.Agg.Image.PixelFormat.Rgba32);
            Graphics2D  g2d         = Graphics2D.CreateFromImage(actualImage);
            GLBitmap    bmp         = null;

            form.SetGLPaintHandler((o, s) =>
            {
                canvas.Clear(PixelFarm.Drawing.Color.White);
                //-------------------------------------
                // draw lion from bitmap to GL screen
                if (bmp == null)
                {
                    lionFill.OnDraw(g2d);
                    bmp = new GLBitmap(new LazyAggBitmapBufferProvider(actualImage));
                }
                //lion is inverted from software layer ,
                //so... we use DrawImageInvert()
                int xpos = 0;
                int w    = bmp.Width;
                int h    = bmp.Height;

                for (int i = 0; i < 3; ++i)
                {
                    canvas.DrawImage(bmp, xpos, 50, w, h);
                    w     = (int)(w * 1.2);
                    h     = (int)(h * 1.2);
                    xpos += 150;
                }
                w    = bmp.Width;
                h    = bmp.Height;
                xpos = 0;
                for (int i = 0; i < 2; ++i)
                {
                    w     = (int)(w * 0.75);
                    h     = (int)(h * 0.75);
                    xpos -= 50;
                    canvas.DrawImage(bmp, xpos, 50, w, h);
                }
            });

            form.Show();
        }
        public override void Load()
        {
            //-----------------------------------------------
            FormTestWinGLControl form   = new FormTestWinGLControl();
            CanvasGL2d           canvas = new CanvasGL2d(this.Width, this.Height);
            var lionFill = new LionFillSprite();

            //-----------------------------------------------
            form.SetGLPaintHandler((o, s) =>
            {
                canvas.Clear(PixelFarm.Drawing.Color.White);
                canvas.FillRect(PixelFarm.Drawing.Color.Blue, 0, 0, 400, 400);
                //draw vxs direct to GL surface
                lionFill.Draw(canvas);
            });
            form.Show();
        }
Beispiel #5
0
 public override void Init()
 {
     lionFill = new LionFillSprite();
     //lionFill.AutoFlipY = true;
 }