public AdaptiveRenderer(int maxPasses, float maxDelta, IPixelRenderer renderer) { _renderer = renderer; MaxPasses = maxPasses; MaxDelta = maxDelta; _samples = new PixelSamples(); }
private static void RunSelfTest(IPixelRenderer renderer) { Log.InfoFormat("Running self-test on {0}: {1} pixels", renderer, renderer.PixelCount); Log.InfoFormat("Red"); for (int i = 0; i < renderer.PixelCount; i++) { renderer.SetPixels(n => n == i ? 0xff0000 : 0x000000); renderer.Show(); Thread.Sleep(50); } Log.InfoFormat("Green"); for (int i = 0; i < renderer.PixelCount; i++) { renderer.SetPixels(n => n == i ? 0x00ff00 : 0x000000); renderer.Show(); Thread.Sleep(50); } Log.InfoFormat("Blue"); for (int i = 0; i < renderer.PixelCount; i++) { renderer.SetPixels(n => n == i ? 0x0000ff : 0x000000); renderer.Show(); Thread.Sleep(50); } }
/// <summary> /// Applies a transform function over the current state of all pixels /// </summary> /// <param name="map">A Func of the form (inputPixel,index) => outputPixel</param> public static void Apply(this IPixelRenderer renderer, Func <uint, int, uint> map) { var pixels = renderer.GetPixels(); var output = pixels.Select(map).ToArray(); renderer.SetPixels(output); }
/// <summary> /// Applies a transform function over the current state of all pixels /// </summary> public static void Apply(this IPixelRenderer renderer, Func <Color, int, Color> map) { Apply(renderer, (rgb, i) => { var color = FromRgb(rgb); var newColor = map(color, i); return(ToRgb(newColor)); }); }
/// <summary> /// Sets all pixels based on a map function over pixel index /// </summary> /// <remarks>For convenience this overload maps to int, not uint</remarks> public static void SetPixels(this IPixelRenderer renderer, Func <int, int> map) { var rgbs = Enumerable.Range(0, renderer.PixelCount) .Select(map) .Cast <uint>() .ToArray() ; renderer.SetPixels(rgbs); }
public static void SetPixels(this IPixelRenderer renderer, IEnumerable <Color> pixels) { var rgbs = pixels .Take(renderer.PixelCount) .Select(ToRgb) .ToArray() ; renderer.SetPixels(rgbs); }
private static Color RenderSubPixel(int remaining, float maxDelta, IPixelSamples samples, IPixelRenderer renderer, in SubPixel sp)
public static void SetRenderer(IPixelRenderer pixelRenderer) { PixelModule.pixelRenderer = pixelRenderer; }
public MappedPixelsDecorator(IPixelRenderer renderer, Func<int,int> indexMap) { _renderer = renderer; _map = indexMap; }
public static void SetPixelColor(this IPixelRenderer renderer, int index, Color color) { renderer.SetPixelColor(index, color.R, color.G, color.B); }
public MappedPixelsDecorator(IPixelRenderer renderer, Func <int, int> indexMap) { _renderer = renderer; _map = indexMap; }