mirror of
https://github.com/DarthAffe/ScreenCapture.NET.git
synced 2025-12-12 21:38:42 +00:00
72 lines
2.1 KiB
C#
72 lines
2.1 KiB
C#
namespace ScreenCapture
|
|
{
|
|
public sealed class CaptureZone
|
|
{
|
|
#region Properties & Fields
|
|
|
|
public int Id { get; }
|
|
|
|
public int X { get; }
|
|
public int Y { get; }
|
|
public int Width { get; }
|
|
public int Height { get; }
|
|
|
|
public int DownscaleLevel { get; }
|
|
|
|
public int UnscaledWidth { get; }
|
|
public int UnscaledHeight { get; }
|
|
|
|
public int CaptureWidth { get; }
|
|
public int CaptureHeight { get; }
|
|
|
|
public int BufferWidth { get; }
|
|
public int BufferHeight { get; }
|
|
public byte[] Buffer { get; }
|
|
|
|
public BlackBarDetection BlackBars { get; }
|
|
|
|
public bool AutoUpdate { get; set; } = true;
|
|
public bool IsUpdateRequested { get; private set; }
|
|
|
|
#endregion
|
|
|
|
#region Constructors
|
|
|
|
public CaptureZone(int id, int x, int y, int width, int height, int downscaleLevel, int unscaledWidth, int unscaledHeight, int captureWidth, int captureHeight, int bufferWidth, int bufferHeight, byte[] buffer)
|
|
{
|
|
this.Id = id;
|
|
this.X = x;
|
|
this.Y = y;
|
|
this.Width = width;
|
|
this.Height = height;
|
|
this.UnscaledWidth = unscaledWidth;
|
|
this.UnscaledHeight = unscaledHeight;
|
|
this.DownscaleLevel = downscaleLevel;
|
|
this.CaptureWidth = captureWidth;
|
|
this.CaptureHeight = captureHeight;
|
|
this.BufferWidth = bufferWidth;
|
|
this.BufferHeight = bufferHeight;
|
|
this.Buffer = buffer;
|
|
|
|
BlackBars = new BlackBarDetection(this);
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Methods
|
|
|
|
public void RequestUpdate() => IsUpdateRequested = true;
|
|
|
|
public void SetUpdated()
|
|
{
|
|
IsUpdateRequested = false;
|
|
BlackBars.InvalidateCache();
|
|
}
|
|
|
|
public override int GetHashCode() => Id;
|
|
public bool Equals(CaptureZone other) => Id == other.Id;
|
|
public override bool Equals(object? obj) => obj is CaptureZone other && Equals(other);
|
|
|
|
#endregion
|
|
}
|
|
} |