Clamp ScissorRect
This commit is contained in:
parent
fcc7cb55df
commit
de86f20b94
2 changed files with 5 additions and 5 deletions
|
@ -539,7 +539,7 @@ namespace Ryujinx.Graphics.Metal
|
|||
|
||||
public unsafe void SetScissors(ReadOnlySpan<Rectangle<int>> regions)
|
||||
{
|
||||
int maxScissors = Math.Min(regions.Length, _renderEncoderState.ViewportCount);
|
||||
int maxScissors = Math.Min(regions.Length, _renderEncoderState.Viewports.Length);
|
||||
|
||||
if (maxScissors == 0)
|
||||
{
|
||||
|
@ -554,8 +554,8 @@ namespace Ryujinx.Graphics.Metal
|
|||
|
||||
mtlScissorRects[i] = new MTLScissorRect
|
||||
{
|
||||
height = (ulong)region.Height,
|
||||
width = (ulong)region.Width,
|
||||
height = Math.Clamp((ulong)region.Height, 0, (ulong)_renderEncoderState.Viewports[i].height),
|
||||
width = Math.Clamp((ulong)region.Width, 0, (ulong)_renderEncoderState.Viewports[i].width),
|
||||
x = (ulong)region.X,
|
||||
y = (ulong)region.Y
|
||||
};
|
||||
|
|
|
@ -27,7 +27,7 @@ namespace Ryujinx.Graphics.Metal
|
|||
|
||||
private MTLViewport[] _viewports = [];
|
||||
private MTLScissorRect[] _scissors = [];
|
||||
public readonly int ViewportCount => _viewports.Length;
|
||||
public readonly MTLViewport[] Viewports => _viewports;
|
||||
|
||||
public RenderEncoderState(MTLFunction vertexFunction, MTLFunction fragmentFunction, MTLDevice device)
|
||||
{
|
||||
|
@ -36,7 +36,7 @@ namespace Ryujinx.Graphics.Metal
|
|||
_device = device;
|
||||
}
|
||||
|
||||
public unsafe readonly void SetEncoderState(MTLRenderCommandEncoder renderCommandEncoder, MTLRenderPassDescriptor descriptor, MTLVertexDescriptor vertexDescriptor)
|
||||
public unsafe void SetEncoderState(MTLRenderCommandEncoder renderCommandEncoder, MTLRenderPassDescriptor descriptor, MTLVertexDescriptor vertexDescriptor)
|
||||
{
|
||||
var renderPipelineDescriptor = new MTLRenderPipelineDescriptor
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue