public FastBitmap CreateBitmap(CalculatedFractalPart calculatedFractalPart, IFractalSettings settings, IShader shader)
        {
            var fastBitmap = new FastBitmap(
                calculatedFractalPart.ScreenPosition.Right - calculatedFractalPart.ScreenPosition.Left + 1,
                calculatedFractalPart.ScreenPosition.Bottom - calculatedFractalPart.ScreenPosition.Top + 1);

            using (var lazyGraphics = new LazyGraphics(fastBitmap.Bitmap))
            {
                using (var pens = new PenCache())
                {
                    foreach (var path in calculatedFractalPart.Paths)
                    {
                        var color = shader.GetColor(path.Value, settings.MaxIterations);
                        DrawPath(path, color, fastBitmap, pens, lazyGraphics);
                    }
                }
            }

            return(fastBitmap);
        }
 public IRenderSpecification CreateFromCalculatedPart(CalculatedFractalPart part, IFractalSettings settings, IShader shader)
 {
     return(new ShadingOnlyRenderSpecification(part, settings, shader));
 }
Exemple #3
0
 public RenderResult(CalculatedFractalPart calculatedFractalPart)
 {
     this.CalculatedFractalPart = calculatedFractalPart;
 }
Exemple #4
0
 public ShadingOnlyRenderSpecification(CalculatedFractalPart calculatedFractalPart, IFractalSettings settings, IShader shader)
     : base(settings, shader)
 {
     this.CalculatedFractalPart = calculatedFractalPart;
 }