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"); }
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)); } }