Esempio n. 1
0
        public void FactorRescaleTest(string file, Filter.Rescaling filter)
        {
            TexImage image = TestTools.Load(library, file);

            TexLibraryTest.FactorRescaleTest(image, library, filter);

            image.Dispose();
        }
Esempio n. 2
0
        public static void FixedRescaleTest(TexImage image, ITexLibrary library, Filter.Rescaling filter)
        {
            var request = new FixedRescalingRequest(256, 256, filter);
            int width   = request.ComputeWidth(image);
            int height  = request.ComputeHeight(image);

            library.Execute(image, request);
            Assert.True(image.Width == width);
            Assert.True(image.Height == height);
            Assert.True(image.MipmapCount == 1);

            image.Update();

            Assert.Equal(TestTools.GetInstance().Checksum["FixedRescaleTest_" + filter + "_" + image.Name], TestTools.ComputeSHA1(image.Data, image.DataSize));
            //Console.WriteLine("FixedRescaleTest_" + filter + "_" + image.Name + "." + TestTools.ComputeSHA1(image.Data, image.DataSize));
        }
Esempio n. 3
0
        public void ProcessingTest(string source, string extension, Filter.Rescaling rescaleFiler, PixelFormat format)
        {
            var image = texTool.Load(TestTools.InputTestFolder + source);

            texTool.CorrectGamma(image, 2.2);

            texTool.Rescale(image, 0.5f, 0.5f, rescaleFiler);

            texTool.GenerateMipMaps(image, Filter.MipMapGeneration.Box);

            var normalMap = texTool.GenerateNormalMap(image, 4);

            texTool.CorrectGamma(normalMap, 1 / 2.2);

            string output = "TextureTool_ProcessingTest_NormalMap" + rescaleFiler + "_" + format + "_" + source + extension;

            texTool.Save(normalMap, TestTools.TempFolder + output, format, normalMap.Width / 2);
            normalMap.Dispose();

            Assert.IsTrue(TestTools.ComputeSHA1(TestTools.TempFolder + output).Equals(TestTools.GetInstance().Checksum[output]));
            //Console.WriteLine(output + "." + TestTools.ComputeSHA1(TestTools.TempFolder + output));
            File.Delete(TestTools.TempFolder + output);

            texTool.Flip(image, Orientation.Horizontal);

            texTool.CorrectGamma(image, 1 / 2.2);

            output = "TextureTool_ProcessingTest_" + rescaleFiler + "_" + format + "_" + source + extension;
            texTool.Save(image, TestTools.TempFolder + output, format, 4);
            image.Dispose();

            Assert.IsTrue(TestTools.ComputeSHA1(TestTools.TempFolder + output).Equals(TestTools.GetInstance().Checksum[output]));
            //Console.WriteLine(output + "." + TestTools.ComputeSHA1(TestTools.TempFolder + output));
            File.Delete(TestTools.TempFolder + output);

            image.Dispose();
        }
Esempio n. 4
0
        public bool CanHandleRequest(TexImage image, IRequest request)
        {
            switch (request.Type)
            {
            // Loading only file with a .pvr extension
            case RequestType.Loading:
                LoadingRequest loader = (LoadingRequest)request;
                return(loader.Mode == LoadingRequest.LoadingMode.FilePath && (Path.GetExtension(loader.FilePath).Equals(".pvr") || Path.GetExtension(loader.FilePath).Equals(".ktx")));

            case RequestType.Compressing:
                CompressingRequest compress = (CompressingRequest)request;
                return(SupportFormat(compress.Format) && SupportFormat(image.Format));

            case RequestType.Export:
                ExportRequest export = (ExportRequest)request;
                return(SupportFormat(image.Format) && (Path.GetExtension(export.FilePath).Equals(".pvr") || Path.GetExtension(export.FilePath).Equals(".ktx")));

            case RequestType.Decompressing:
                return(SupportFormat(image.Format));

            case RequestType.MipMapsGeneration:
                return(((MipMapsGenerationRequest)request).Filter != Filter.MipMapGeneration.Box);

            case RequestType.Rescaling:
                Filter.Rescaling filter = ((RescalingRequest)request).Filter;
                return(filter == Filter.Rescaling.Bicubic || filter == Filter.Rescaling.Bilinear || filter == Filter.Rescaling.Nearest);

            case RequestType.PreMultiplyAlpha:
            case RequestType.SwitchingChannels:
            case RequestType.Flipping:
            case RequestType.NormalMapGeneration:
                return(true);

            default:
                return(false);
            }
        }
Esempio n. 5
0
 /// <summary>
 /// Initializes a new instance of the <see cref="FactorRescalingRequest"/> class.
 /// </summary>
 /// <param name="widthFactor">The width factor.</param>
 /// <param name="heightFactor">The height factor.</param>
 /// <param name="filter">The filter.</param>
 public FactorRescalingRequest(float widthFactor, float heightFactor, Filter.Rescaling filter) : base(filter)
 {
     this.widthFactor  = widthFactor;
     this.heightFactor = heightFactor;
 }
Esempio n. 6
0
 /// <summary>
 /// Initializes a new instance of the <see cref="RescalingRequest"/> class.
 /// </summary>
 /// <param name="filter">The filter.</param>
 protected RescalingRequest(Filter.Rescaling filter)
 {
     this.Filter = filter;
 }
Esempio n. 7
0
 /// <summary>
 /// Initializes a new instance of the <see cref="RescalingRequest"/> class.
 /// </summary>
 /// <param name="filter">The filter.</param>
 protected RescalingRequest(Filter.Rescaling filter)
 {
     this.Filter = filter;
 }
Esempio n. 8
0
 /// <summary>
 /// Initializes a new instance of the <see cref="FixedRescalingRequest"/> class.
 /// </summary>
 /// <param name="width">The width.</param>
 /// <param name="height">The height.</param>
 /// <param name="filter">The filter.</param>
 public FixedRescalingRequest(int width, int height, Filter.Rescaling filter) : base(filter)
 {
     this.width  = width;
     this.height = height;
 }