Exemplo n.º 1
0
        public void Constructors()
        {
            MPSImageHistogramInfo info = new MPSImageHistogramInfo();

            info.NumberOfHistogramEntries = 256;
            using (var obj = new MPSImageHistogram(MTLDevice.SystemDefault, ref info)) {
                var rv = obj.HistogramInfo;
                Asserts.AreEqual(info, rv, "HistogramForAlpha");

                Assert.IsTrue(obj.ZeroHistogram, "ZeroHistogram");
                if (TestRuntime.CheckXcodeVersion(8, 0))
                {
                    // HistogramSizeForSourceFormat was introduced in iOS 9, but no matter which MTLPixelFormat value I pass in,
                    // the native histogramSizeForSourceFormat: function rudely aborts the entire process with an abrupt:
                    // > /BuildRoot/Library/Caches/com.apple.xbs/Sources/MetalImage/MetalImage-39.3/MetalImage/Filters/MIHistogram.mm:103: failed assertion `[MPSImageHistogram histogramSizeForSourceFormat:] unsupported texture format: 114'
                    // I made sure the MTLPixelFormat values I tested with were also added in iOS 9, so that's not the problem.
                    // Conclusion: just avoid executing HistogramSizeForSourceFormat on anything below iOS 10.rm
                    Assert.AreEqual(3072, obj.GetHistogramSize(MTLPixelFormat.RGBA16Sint), "HistogramSizeForSourceFormat");
                }
                var crs = obj.ClipRectSource;
                Assert.AreEqual(0, crs.Origin.X, "ClipRectSource.Origin.X");
                Assert.AreEqual(0, crs.Origin.Y, "ClipRectSource.Origin.Y");
                Assert.AreEqual(0, crs.Origin.Z, "ClipRectSource.Origin.Z");
                Assert.AreEqual(-1, crs.Size.Depth, "ClipRectSource.Size.Depth");
                Assert.AreEqual(-1, crs.Size.Height, "ClipRectSource.Size.Height");
                Assert.AreEqual(-1, crs.Size.Width, "ClipRectSource.Size.Width");
            }
        }
        public void Constructors()
        {
            TestRuntime.AssertDevice();
            TestRuntime.AssertXcodeVersion(7, 0);

            MPSImageHistogramInfo info = new MPSImageHistogramInfo();

            info.NumberOfHistogramEntries = 256;
            using (var obj = new MPSImageHistogram(MTLDevice.SystemDefault, ref info)) {
                var rv = obj.HistogramInfo;
                Asserts.AreEqual(info, rv, "HistogramForAlpha");

                Assert.IsTrue(obj.ZeroHistogram, "ZeroHistogram");
                Assert.AreEqual(3072, obj.HistogramSizeForSourceFormat(MTLPixelFormat.RGBA16Sint), "HistogramSizeForSourceFormat");
                var crs = obj.ClipRectSource;
                Assert.AreEqual(0, crs.Origin.X, "ClipRectSource.Origin.X");
                Assert.AreEqual(0, crs.Origin.Y, "ClipRectSource.Origin.Y");
                Assert.AreEqual(0, crs.Origin.Z, "ClipRectSource.Origin.Z");
                Assert.AreEqual(-1, crs.Size.Depth, "ClipRectSource.Size.Depth");
                Assert.AreEqual(-1, crs.Size.Height, "ClipRectSource.Size.Height");
                Assert.AreEqual(-1, crs.Size.Width, "ClipRectSource.Size.Width");
            }
        }