You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
1.1 KiB
43 lines
1.1 KiB
namespace Avalonia.Gif.Decoding |
|
{ |
|
public readonly struct GifRect |
|
{ |
|
public int X { get; } |
|
public int Y { get; } |
|
public int Width { get; } |
|
public int Height { get; } |
|
public int TotalPixels { get; } |
|
|
|
public GifRect(int x, int y, int width, int height) |
|
{ |
|
X = x; |
|
Y = y; |
|
Width = width; |
|
Height = height; |
|
TotalPixels = width * height; |
|
} |
|
|
|
public static bool operator ==(GifRect a, GifRect b) |
|
{ |
|
return a.X == b.X && a.Y == b.Y && a.Width == b.Width && a.Height == b.Height; |
|
} |
|
|
|
public static bool operator !=(GifRect a, GifRect b) |
|
{ |
|
return !(a == b); |
|
} |
|
|
|
public override bool Equals(object obj) |
|
{ |
|
if (obj == null || GetType() != obj.GetType()) |
|
return false; |
|
|
|
return this == (GifRect)obj; |
|
} |
|
|
|
public override int GetHashCode() |
|
{ |
|
return X.GetHashCode() ^ Y.GetHashCode() | Width.GetHashCode() ^ Height.GetHashCode(); |
|
} |
|
} |
|
}
|
|
|