diff options
Diffstat (limited to 'src/Ryujinx.Graphics.GAL/Extents2D.cs')
-rw-r--r-- | src/Ryujinx.Graphics.GAL/Extents2D.cs | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/Ryujinx.Graphics.GAL/Extents2D.cs b/src/Ryujinx.Graphics.GAL/Extents2D.cs new file mode 100644 index 00000000..bac44f83 --- /dev/null +++ b/src/Ryujinx.Graphics.GAL/Extents2D.cs @@ -0,0 +1,31 @@ +using Ryujinx.Common; + +namespace Ryujinx.Graphics.GAL +{ + public readonly struct Extents2D + { + public int X1 { get; } + public int Y1 { get; } + public int X2 { get; } + public int Y2 { get; } + + public Extents2D(int x1, int y1, int x2, int y2) + { + X1 = x1; + Y1 = y1; + X2 = x2; + Y2 = y2; + } + + public Extents2D Reduce(int level) + { + int div = 1 << level; + + return new Extents2D( + X1 >> level, + Y1 >> level, + BitUtils.DivRoundUp(X2, div), + BitUtils.DivRoundUp(Y2, div)); + } + } +}
\ No newline at end of file |