From c38f1c80f1fbdfdb758c5a0b93d045a9a5b526ad Mon Sep 17 00:00:00 2001 From: Roy Ben-Shabat Date: Tue, 3 Mar 2020 18:56:58 +0200 Subject: Machine Studio v4.1.2 PPC v1.1.5 Added BYPASS_ROCKERS to SQLExaminer config. Started integrating FSE Remote/Console To PPC. Added support for generic continuous request. --- .../Tango.RemoteDesktop/ScreenCaptureEngine.cs | 43 +++++++++++++--------- 1 file changed, 25 insertions(+), 18 deletions(-) (limited to 'Software/Visual_Studio/Tango.RemoteDesktop/ScreenCaptureEngine.cs') diff --git a/Software/Visual_Studio/Tango.RemoteDesktop/ScreenCaptureEngine.cs b/Software/Visual_Studio/Tango.RemoteDesktop/ScreenCaptureEngine.cs index 1d7b4d7d4..17f54369c 100644 --- a/Software/Visual_Studio/Tango.RemoteDesktop/ScreenCaptureEngine.cs +++ b/Software/Visual_Studio/Tango.RemoteDesktop/ScreenCaptureEngine.cs @@ -136,37 +136,44 @@ namespace Tango.RemoteDesktop { watch.Restart(); - var bitmap = CaptureMethod.GetDesktopBitmap(CaptureRegion); - - if (CaptureCursor) + try { - using (Graphics g = Graphics.FromImage(bitmap)) + var bitmap = CaptureMethod.GetDesktopBitmap(CaptureRegion); + + if (CaptureCursor) { - CursorUtils.ApplyCursor(g, bitmap, CaptureRegion.Left, CaptureRegion.Top); + using (Graphics g = Graphics.FromImage(bitmap)) + { + CursorUtils.ApplyCursor(g, bitmap, CaptureRegion.Left, CaptureRegion.Top); + } } - } - if (EnableComparer && Comparer != null) - { - if (_previousBitmap == null) + if (EnableComparer && Comparer != null) { - _previousBitmap = bitmap.Clone() as Bitmap; - OnFrameReceived(bitmap, null, 0); + if (_previousBitmap == null) + { + _previousBitmap = bitmap.Clone() as Bitmap; + OnFrameReceived(bitmap, null, 0); + } + else + { + var result = Comparer.CreateDifference(_previousBitmap, bitmap); + _previousBitmap.Dispose(); + _previousBitmap = bitmap.Clone() as Bitmap; + OnFrameReceived(bitmap, result.Frame, result.DifferenceCount); + } } else { - var result = Comparer.CreateDifference(_previousBitmap, bitmap); - _previousBitmap.Dispose(); - _previousBitmap = bitmap.Clone() as Bitmap; - OnFrameReceived(bitmap, result.Frame, result.DifferenceCount); + OnFrameReceived(bitmap, null, 0); } } - else + catch (Exception ex) { - OnFrameReceived(bitmap, null, 0); + Debug.WriteLine($"Error in screen capture engine: {ex.Message}"); } - int delay = Math.Max(5, (FrameRate * 10) - (int)watch.ElapsedMilliseconds); + int delay = Math.Max(5, (1000 / FrameRate) - (int)watch.ElapsedMilliseconds); Thread.Sleep(delay); } } -- cgit v1.3.1