CPF/CPF.Mac/Mac/CoreImage/CISamplerOptions.cs
2023-11-21 23:05:03 +08:00

48 lines
1.2 KiB
C#

using CPF.Mac.CoreGraphics;
using CPF.Mac.Foundation;
namespace CPF.Mac.CoreImage
{
public class CISamplerOptions
{
public CGAffineTransform? AffineMatrix
{
get;
set;
}
public CIWrapMode? WrapMode
{
get;
set;
}
public CIFilterMode? FilterMode
{
get;
set;
}
internal NSDictionary ToDictionary()
{
NSMutableDictionary nSMutableDictionary = new NSMutableDictionary();
if (AffineMatrix.HasValue)
{
CGAffineTransform value = AffineMatrix.Value;
nSMutableDictionary.SetObject(NSArray.FromNSObjects(NSNumber.FromDouble(value.xx), NSNumber.FromDouble(value.yx), NSNumber.FromDouble(value.xy), NSNumber.FromDouble(value.yy), NSNumber.FromDouble(value.x0), NSNumber.FromDouble(value.y0)), CISampler.AffineMatrix);
}
if (WrapMode.HasValue)
{
NSString obj = (WrapMode.Value == CIWrapMode.Black) ? CISampler.WrapBlack : CISampler.FilterNearest;
nSMutableDictionary.SetObject(obj, CISampler.WrapMode);
}
if (FilterMode.HasValue)
{
NSString obj2 = (FilterMode.Value == CIFilterMode.Nearest) ? CISampler.FilterNearest : CISampler.FilterLinear;
nSMutableDictionary.SetObject(obj2, CISampler.FilterMode);
}
return nSMutableDictionary;
}
}
}