public void Scale(Size3 size, MitchellNetravaliScaleShader shader, ScalingModel scaling) { var tmp = shader.Run((TextureArray2D)Image, size, scaling); Image.Dispose(); Image = tmp; }
public SharedModel() { Upload = new UploadBuffer(256); // big enough for 4 matrix4 Download = new DownloadBuffer(256); ScaleShader = new MitchellNetravaliScaleShader(QuadShader, Upload); Convert = new ConvertFormatShader(QuadShader, Upload); }
public SharedModel() { Upload = new UploadBuffer(256); // big enough for 4 matrix4 Download = new DownloadBuffer(256); ScaleShader = new MitchellNetravaliScaleShader(QuadShader, Upload); Convert = new ConvertFormatShader(QuadShader, Upload); Sync = new SyncQuery(); LinearSampler = CreateSamplerState(true); PointSampler = CreateSamplerState(false); }
public void MitchelXYScale() { var shader = new MitchellNetravaliScaleShader(new QuadShader(), new UploadBuffer(256)); var checkers = new TextureArray2D(IO.LoadImage(TestData.Directory + "sphere.png")); var res = shader.Run(checkers, new Size3(20, 40)); var reference = new TextureArray2D(IO.LoadImage(TestData.Directory + "sphere_scaled.png")); // compare with gimp reference TestData.CompareColors(reference.GetPixelColors(0, 0), res.GetPixelColors(0, 0)); }
public void MitchelUpscale() { var models = new Models(1); var shader = new MitchellNetravaliScaleShader(new QuadShader(), new UploadBuffer(256)); var checkers = new TextureArray2D(IO.LoadImage(TestData.Directory + "sphere.png")); var res = shader.Run(checkers, new Size3(62, 31), models.Scaling); var reference = new TextureArray2D(IO.LoadImage(TestData.Directory + "sphere_up.png")); // compare with gimp reference TestData.CompareColors(reference.GetPixelColors(LayerMipmapSlice.Mip0), res.GetPixelColors(LayerMipmapSlice.Mip0)); }
public ImagesModel(MitchellNetravaliScaleShader scaleShader) { this.scaleShader = scaleShader; Images = images; }