diff options
| author | Roy Ben-Shabat <Roy@Twine-s.com> | 2020-03-03 18:56:58 +0200 |
|---|---|---|
| committer | Roy Ben-Shabat <Roy@Twine-s.com> | 2020-03-03 18:56:58 +0200 |
| commit | c38f1c80f1fbdfdb758c5a0b93d045a9a5b526ad (patch) | |
| tree | 20cc57b06f4260b6f86fdaca04129e1a8ace53cd /Software/Visual_Studio/Tango.RemoteDesktop/ScreenCaptureEngine.cs | |
| parent | 1b0bdf6f8148e9cc4e7e07e41e9e2d75039c1349 (diff) | |
| download | Tango-c38f1c80f1fbdfdb758c5a0b93d045a9a5b526ad.tar.gz Tango-c38f1c80f1fbdfdb758c5a0b93d045a9a5b526ad.zip | |
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.
Diffstat (limited to 'Software/Visual_Studio/Tango.RemoteDesktop/ScreenCaptureEngine.cs')
| -rw-r--r-- | Software/Visual_Studio/Tango.RemoteDesktop/ScreenCaptureEngine.cs | 43 |
1 files changed, 25 insertions, 18 deletions
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); } } |
