Implement Logical Operation registers and functionality (#1380)

* Implement Logical Operation registers and functionality.

* Address Feedback 1
This commit is contained in:
riperiperi 2020-07-10 18:23:15 +01:00 committed by GitHub
parent 189c0c9c72
commit f224769c49
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 110 additions and 0 deletions

View file

@ -443,5 +443,48 @@ namespace Ryujinx.Graphics.OpenGL
return NvViewportSwizzle.ViewportSwizzlePositiveXNv;
}
public static All Convert(this LogicalOp op)
{
switch (op)
{
case LogicalOp.Clear:
return All.Clear;
case LogicalOp.And:
return All.And;
case LogicalOp.AndReverse:
return All.AndReverse;
case LogicalOp.Copy:
return All.Copy;
case LogicalOp.AndInverted:
return All.AndInverted;
case LogicalOp.Noop:
return All.Noop;
case LogicalOp.Xor:
return All.Xor;
case LogicalOp.Or:
return All.Or;
case LogicalOp.Nor:
return All.Nor;
case LogicalOp.Equiv:
return All.Equiv;
case LogicalOp.Invert:
return All.Invert;
case LogicalOp.OrReverse:
return All.OrReverse;
case LogicalOp.CopyInverted:
return All.CopyInverted;
case LogicalOp.OrInverted:
return All.OrInverted;
case LogicalOp.Nand:
return All.Nand;
case LogicalOp.Set:
return All.Set;
}
Logger.PrintDebug(LogClass.Gpu, $"Invalid {nameof(LogicalOp)} enum value: {op}.");
return All.Never;
}
}
}