public void FactorRescaleTest(string file, Filter.Rescaling filter) { TexImage image = TestTools.Load(library, file); TexLibraryTest.FactorRescaleTest(image, library, filter); image.Dispose(); }
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)); }
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(); }
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); } }
/// <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; }
/// <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; }
/// <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; }
/// <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; }