Ejemplo n.º 1
0
        private void renderHandler_OnPaint(object sender, Chromium.Event.CfxOnPaintEventArgs e)
        {
            Stopwatch sw = new Stopwatch();

            sw.Start();
            lock (pbLock)
            {
                if (PixelBuffer == null || PixelBuffer.Width < e.Width || PixelBuffer.Height < e.Height)
                {
                    PixelBuffer = new Bitmap(e.Width, e.Height, System.Drawing.Imaging.PixelFormat.Format32bppArgb);
                }
                using (var bm = new Bitmap(e.Width, e.Height, e.Width * 4, System.Drawing.Imaging.PixelFormat.Format32bppArgb, e.Buffer))
                {
                    using (var g = Graphics.FromImage(PixelBuffer))
                    {
                        g.DrawImageUnscaled(bm, 0, 0);
                    }
                }
            }
            foreach (var r in e.DirtyRects)
            {
                Invalidate(new Rectangle(r.X, r.Y, r.Width, r.Height));
            }
            sw.Stop();
            Debug.Print($"renderHandler_OnPaint: { sw.ElapsedMilliseconds }ms\r\n");
        }
Ejemplo n.º 2
0
        void renderHandler_OnPaint(object sender, Chromium.Event.CfxOnPaintEventArgs e)
        {
            Console.WriteLine($"[{DateTime.Now}] PAINT_CALLED");

            //lock (pbLock)
            //{
            //	if (pixelBuffer == null || pixelBuffer.Width < e.Width || pixelBuffer.Height < e.Height)
            //	{
            //		pixelBuffer = new Bitmap(e.Width, e.Height, System.Drawing.Imaging.PixelFormat.Format32bppArgb);
            //	}
            //	using (var bm = new Bitmap(e.Width, e.Height, e.Width * 4, System.Drawing.Imaging.PixelFormat.Format32bppArgb, e.Buffer))
            //	{
            //		using (var g = Graphics.FromImage(pixelBuffer))
            //		{
            //			g.DrawImageUnscaled(bm, 0, 0);
            //		}
            //	}
            //}
            //foreach (var r in e.DirtyRects)
            //{
            //	Invalidate(new Rectangle(r.X, r.Y, r.Width, r.Height));
            //}
            var w = e.Width;
            var h = e.Height;

            var guid = Guid.NewGuid();

            mutex.WaitOne();
            frameSequence.Enqueue(guid);
            Animations.Add(guid, null);
            mutex.ReleaseMutex();

            var bitmap = new Bitmap(w, h);

            using (var bm = new Bitmap(w, h, w * 4, System.Drawing.Imaging.PixelFormat.Format32bppArgb, e.Buffer))
            {
                using (var g = Graphics.FromImage(bitmap))
                {
                    g.DrawImageUnscaled(bm, 0, 0);
                    mutex.WaitOne();
                    Animations[guid] = bitmap;
                    mutex.ReleaseMutex();
                }
            }
        }
 void renderHandler_OnPaint(object sender, Chromium.Event.CfxOnPaintEventArgs e)
 {
     lock (pbLock) {
         if (pixelBuffer == null || pixelBuffer.Width < e.Width || pixelBuffer.Height < e.Height)
         {
             pixelBuffer = new Bitmap(e.Width, e.Height, System.Drawing.Imaging.PixelFormat.Format32bppArgb);
         }
         using (var bm = new Bitmap(e.Width, e.Height, e.Width * 4, System.Drawing.Imaging.PixelFormat.Format32bppArgb, e.Buffer)) {
             using (var g = Graphics.FromImage(pixelBuffer)) {
                 g.DrawImageUnscaled(bm, 0, 0);
             }
         }
     }
     foreach (var r in e.DirtyRects)
     {
         Invalidate(new Rectangle(r.X, r.Y, r.Width, r.Height));
     }
 }