Exemple #1
0
        /// <summary>
        /// The execute.
        /// </summary>
        /// <param name="context">
        /// The context.
        /// </param>
        public override void Execute(CommandContext context)
        {
            Assert.ArgumentNotNull(context, "context");

            if (context.Items.Length != 1)
            {
                return;
            }

            Item itemNotNull = Client.GetItemNotNull(context.Parameters["itemid"]);

            itemNotNull.Fields.ReadAll();

            Field field = itemNotNull.Fields[context.Parameters["fieldid"]];

            Assert.IsNotNull(field, "field");

            ImageRenderer renderer = new ImageRenderer
            {
                Item       = itemNotNull,
                FieldName  = field.Name,
                FieldValue = string.Empty,
                Parameters = this.GetRendererParameters(context.Parameters)
            };

            SheerResponse.SetAttribute("scHtmlValue", "value", renderer.Render().ToString());
            SheerResponse.SetAttribute("scPlainValue", "value", EditorConstants.NoValue);
            SheerResponse.Eval("scSetHtmlValue('{0}');", context.Parameters["controlid"]);

            WebUtil.SetCookieValue("sitecore_webedit_editing", "1");
        }
Exemple #2
0
    public static void Main(String[] args)
    {
        Thread[] threads = new Thread[10];
        for (int i = 0; i < 10; i++) {
            ImageRenderer rendObj = new ImageRenderer(i);
            threads[i] = new Thread(new ThreadStart(rendObj.Foo));
            threads[i].Start();
        }
        for (int i = 0; i < 10; i++) {
            threads[i].Join();
        }

        Console.WriteLine("");
        for (int i = 0; i < 10; i++) {
            threads[i] = new Thread(delegate() {
                Console.WriteLine("task " + i + " running");
                // NB: There is a race here.  Nothing guarantees that
                // the new thread will read i before the main thread
                // increments it for the next iteration of the loop.
            });
            threads[i].Start();
        }
        for (int i = 0; i < 10; i++) {
            threads[i].Join();
        }
    }
Exemple #3
0
        public override IEnumerable <LocalRenderingExtensionInfo> ListRenderingExtensions()
        {
            if (m_renderingExtensions == null)
            {
                List <LocalRenderingExtensionInfo> list = new List <LocalRenderingExtensionInfo>();
                RPLRenderer rPLRenderer = new RPLRenderer();
                list.Add(new LocalRenderingExtensionInfo("RPL", rPLRenderer.LocalizedName, isVisible: false, typeof(RPLRenderer), isExposedExternally: false));
                ExcelRenderer excelRenderer = new ExcelRenderer();
                list.Add(new LocalRenderingExtensionInfo("Excel", excelRenderer.LocalizedName, isVisible: false, typeof(ExcelRenderer), isExposedExternally: true));
                ExcelOpenXmlRenderer excelOpenXmlRenderer = new ExcelOpenXmlRenderer();
                list.Add(new LocalRenderingExtensionInfo("EXCELOPENXML", excelOpenXmlRenderer.LocalizedName, isVisible: true, typeof(ExcelOpenXmlRenderer), isExposedExternally: true));
                ImageRenderer imageRenderer = new ImageRenderer();
                list.Add(new LocalRenderingExtensionInfo("IMAGE", imageRenderer.LocalizedName, isVisible: false, typeof(ImageRenderer), isExposedExternally: true));
                PDFRenderer pDFRenderer = new PDFRenderer();
                list.Add(new LocalRenderingExtensionInfo("PDF", pDFRenderer.LocalizedName, isVisible: true, typeof(PDFRenderer), isExposedExternally: true));
                WordDocumentRenderer wordDocumentRenderer = new WordDocumentRenderer();
                list.Add(new LocalRenderingExtensionInfo("WORD", wordDocumentRenderer.LocalizedName, isVisible: false, typeof(WordDocumentRenderer), isExposedExternally: true));
                WordOpenXmlDocumentRenderer wordOpenXmlDocumentRenderer = new WordOpenXmlDocumentRenderer();
                list.Add(new LocalRenderingExtensionInfo("WORDOPENXML", wordOpenXmlDocumentRenderer.LocalizedName, isVisible: true, typeof(WordOpenXmlDocumentRenderer), isExposedExternally: true));

                list.Add(new LocalRenderingExtensionInfo("MHTML", new ReportingServices.Rendering.HtmlRenderer.MHtmlRenderingExtension().LocalizedName, isVisible: true, typeof(ReportingServices.Rendering.HtmlRenderer.MHtmlRenderingExtension), isExposedExternally: true));
                list.Add(new LocalRenderingExtensionInfo("HTML4.0", new ReportingServices.Rendering.HtmlRenderer.Html40RenderingExtension().LocalizedName, isVisible: true, typeof(ReportingServices.Rendering.HtmlRenderer.Html40RenderingExtension), isExposedExternally: true));
                list.Add(new LocalRenderingExtensionInfo("HTML5", new ReportingServices.Rendering.HtmlRenderer.Html5RenderingExtension().LocalizedName, isVisible: true, typeof(ReportingServices.Rendering.HtmlRenderer.Html5RenderingExtension), isExposedExternally: true));

                m_renderingExtensions = list;
            }
            return(m_renderingExtensions);
        }
Exemple #4
0
        /// <summary>
        /// Renders the <see cref="PresentationImage"/> to a provided offscreen <see cref="Bitmap"/>.
        /// </summary>
        /// <param name="bmp">The offscreen bitmap to render to.</param>
        /// <returns></returns>
        /// <remarks>
        /// This method can be used anywhere an offscreen bitmap is required, such as
        /// paper/DICOM printing, thumbnail generation, creation of new DICOM images, etc.
        /// </remarks>
        /// <exception cref="ArgumentNullException">Thrown if <paramref name="bmp"/> is null.</exception>
        /// <exception cref="ArgumentException">Thrown if <paramref name="bmp"/> has invalid dimensions.</exception>
        /// <exception cref="RenderingException">Thrown if any <see cref="Exception"/> is encountered while rendering the image.</exception>
        public virtual void DrawToBitmap(Bitmap bmp)
        {
            Platform.CheckForNullReference(bmp, "bmp");

            Platform.CheckPositive(bmp.Width, "bmp.Width");
            Platform.CheckPositive(bmp.Height, "bmp.Height");

            var graphics  = System.Drawing.Graphics.FromImage(bmp);
            var contextId = graphics.GetHdc();

            try
            {
                using (var surface = ImageRenderer.GetRenderingSurface(IntPtr.Zero, bmp.Width, bmp.Height))
                {
                    surface.ContextID     = contextId;
                    surface.ClipRectangle = new Rectangle(0, 0, bmp.Width, bmp.Height);

                    var drawArgs = new DrawArgs(surface, null, DrawMode.Render);
                    DrawNoEvents(drawArgs);
                    drawArgs = new DrawArgs(surface, null, DrawMode.Refresh);
                    DrawNoEvents(drawArgs);
                }
            }
            finally
            {
                graphics.ReleaseHdc(contextId);
                graphics.Dispose();
            }
        }
Exemple #5
0
    public static void Main(String[] args)
    {
        Thread[] threads = new Thread[10];
        for (int i = 0; i < 10; i++)
        {
            ImageRenderer rendObj = new ImageRenderer(i);
            threads[i] = new Thread(new ThreadStart(rendObj.Foo));
            threads[i].Start();
        }
        for (int i = 0; i < 10; i++)
        {
            threads[i].Join();
        }

        Console.WriteLine("");
        for (int i = 0; i < 10; i++)
        {
            threads[i] = new Thread(delegate() {
                Console.WriteLine("task " + i + " running");
                // NB: There is a race here.  Nothing guarantees that
                // the new thread will read i before the main thread
                // increments it for the next iteration of the loop.
            });
            threads[i].Start();
        }
        for (int i = 0; i < 10; i++)
        {
            threads[i].Join();
        }
    }
Exemple #6
0
        public override void Initialize(Game game)
        {
            progressBar = new BarWidget()
            {
                BoundsAsRatio        = true,
                Bounds               = new FloatRect(.25f, .45f, .5f, .1f),
                BorderColor          = Color.White,
                BorderSize           = 3,
                EmptyBackgroundColor = Color.Red,
                FullBackgroundColor  = Color.Black,
                EmptyFillColor       = Color.Black,
                FullFillColor        = Color.Green
            };

            entity = new Entity();

            game.Resources.RegisterResource(
                game.Resources.ResourceDeserializer.Deserialize(
                    new ScriptDocument(FileFinder.ResourcePath("BrothEngine/resource.json")).JString
                    ));

            ImageRenderer renderer = new ImageRenderer(entity)
            {
                Resource = game.Resources.TryGetResource <ImageResource>("ENGINE.logo")
            };

            entity.Renderer           = renderer;
            entity.Transform.Position = new Vector2f(game.Window.Size.X / 2, game.Window.Size.Y / 2);
        }
Exemple #7
0
    static void Main(string[] args)
    {
        int mapWidth, mapHeight, fillPercent;

        if (args.Length < 3)
        {
            Console.WriteLine("Usage: *.exe <width> <height> <fill%>");
            return;
        }
        else
        {
            mapWidth    = Int32.Parse(args[0]);
            mapHeight   = Int32.Parse(args[1]);
            fillPercent = Int32.Parse(args[2]);
        }

        CaveGenerator caveGenerator = new CaveGenerator();
        Renderer      renderer      = new Renderer();
        ImageRenderer imageRenderer = new ImageRenderer();

        int[] playerPos = { 0, 0 };

        byte[,] mapContent = new byte[mapWidth, mapHeight];
        bool[,] map        = new bool[mapWidth, mapHeight];

        caveGenerator.GenerateCave(ref map, ref mapContent, 2, fillPercent);
        // caveGenerator.SpawnPlayer(ref map, ref mapContent, ref playerPos);

        // renderer.DrawMap(ref map, ref mapContent);
        Console.WriteLine("Rendering image...");
        imageRenderer.DrawMap(ref mapContent);

        Console.WriteLine("Done.");
        return;
    }
 public ThumbnailPickerGUI(ImageRenderer imageRenderer, ScrollView thumbnailScroll)
 {
     this.imageRenderer              = imageRenderer;
     imageGrid                       = new SingleSelectButtonGrid(thumbnailScroll);
     imageGrid.SelectedValueChanged += new EventHandler(imageGrid_SelectedValueChanged);
     thumbnailImages                 = new ImageAtlas("ThumbnailPicker", new IntSize2(imageGrid.ItemWidth, imageGrid.ItemHeight));
 }
Exemple #9
0
        public IActionResult GetBarcode(string data)
        {
            _logger.LogInformation("GetBarcode " + data);

            System.IO.File.WriteAllText(Environment.CurrentDirectory + @"/mydata/" + "file_" + DateTime.Now.Ticks + ".txt", data);

            var cachedString = _distributedCache.GetString("TEST");

            if (string.IsNullOrEmpty(cachedString))
            {
                _distributedCache.SetString("TEST", "somevaluetocache");
                _logger.LogInformation("Was not found, ... but now set.");
            }
            else
            {
                _logger.LogInformation("Yeah, ... was found : " + cachedString);
            }

            var barcode  = Code128Encoder.Encode(data, true);
            var renderer = new ImageRenderer();
            var stream   = new MemoryStream();

            renderer.Render(barcode, stream);

            return(File(stream.ToArray(), "image/png"));
        }
Exemple #10
0
        public NoiseControl()
        {
            InitializeComponent();

            var map     = new NoiseMap();
            var builder = new PlaneNoiseMapBuilder()
            {
                DestNoiseMap = map,
            };

            builder.SetDestSize(pictureBox.Width, pictureBox.Height);
            m_noiseBuilder = builder;

            var image    = new SharpNoise.Utilities.Imaging.Image();
            var renderer = new ImageRenderer()
            {
                SourceNoiseMap   = map,
                DestinationImage = image,
            };

            if (greyRadioButton.Checked)
            {
                renderer.BuildGrayscaleGradient();
            }
            else if (terrainRadioButton.Checked)
            {
                renderer.BuildTerrainGradient();
            }
            else
            {
                throw new Exception();
            }

            m_imageRenderer = renderer;
        }
Exemple #11
0
        public Renderer(RenderSurface surface)
        {
            Surface = surface;
            ContentArchive content;

            using (var stream = GetType().Assembly.GetManifestResourceStream("DemoRenderer.DemoRenderer.contentarchive"))
            {
                content = ContentArchive.Load(stream);
            }
            Shapes           = new ShapesExtractor(looper, pool);
            SphereRenderer   = new RayTracedRenderer <SphereInstance>(content, @"ShapeDrawing\RenderSpheres");
            CapsuleRenderer  = new RayTracedRenderer <CapsuleInstance>(content, @"ShapeDrawing\RenderCapsules");
            CylinderRenderer = new RayTracedRenderer <CylinderInstance>(content, @"ShapeDrawing\RenderCylinders");
            BoxRenderer      = new BoxRenderer(content);
            TriangleRenderer = new TriangleRenderer(content);
            MeshRenderer     = new MeshRenderer(Shapes.MeshCache, content);
            Lines            = new LineExtractor(pool, looper);
            LineRenderer     = new LineRenderer(content);
            Background       = new BackgroundRenderer(content);
            CompressToSwap   = new CompressToSwap(content);

            ImageRenderer  = new ImageRenderer(content);
            ImageBatcher   = new ImageBatcher(pool);
            GlyphRenderer  = new GlyphRenderer(content);
            TextBatcher    = new TextBatcher();
            UILineRenderer = new UILineRenderer(content);
            UILineBatcher  = new UILineBatcher();

            OnResize();
        }
Exemple #12
0
    public async void TransitionsAsync()
    {
        OverworldGenerator og       = new OverworldGenerator();
        OverworldTerrain   noiseGen = new OverworldTerrain(true);
        await Task.Run(() =>
        {
            var map = new NoiseMap();
            PlaneNoiseMapBuilder builder =
                new PlaneNoiseMapBuilder()
            {
                DestNoiseMap = map, SourceModule = noiseGen.transitions
            };

            var image = new Image();
            var transitionsRenderer = new ImageRenderer()
            {
                SourceNoiseMap = map, DestinationImage = image
            };
            transitionsRenderer.BuildGrayscaleGradient();
            builder.SetBounds(-400, 400, -300, 300);
            builder.SetDestSize(800, 600);
            builder.Build();
            transitionsRenderer.Render();

            var bmp = transitionsRenderer.DestinationImage.ToGdiBitmap();
            bmp.Save("_transitions.bmp");

            Assert.Equal(0, 0);
        });
    }
        public void Render_Ean13_IncludeContentAsText()
        {
            var      renderer = new ImageRenderer(imageFormat: ImageFormat.Png, includeEanContentAsText: true);
            IBarcode barcode  = EanEncoder.Encode("978020137962");

            using Stream stream = File.OpenWrite(@"d:\temp\ean-test.png");
            renderer.Render(barcode, stream);
        }
 public static void ModifyContent(ref ImageRenderer renderer, Resource.IResource res)
 {
     renderer.rectTranfrom = renderer.GetComponent <RectTransform>();
     renderer.image        = renderer.GetComponent <RawImage>();
     renderer.ChangeContent(res);
     renderer.Attrs = res.Attrs;
     renderer.ApplyAttrs(res.Attrs);
 }
		public static ImageLoader GetImageLoader (ImageRenderer imageRenderer)
		{
			//TODO
			if (_onlyLoader == null) {
				_onlyLoader = new ImageLoader (Android.App.Application.Context, 64, 40);
			}
			return _onlyLoader;
		}
 public ImageView(MonoReports.Model.Controls.Image image, SectionView parentSection, PixbufRepository pixbufRepository) : base(image)
 {
     this.ParentSection = parentSection;
     AbsoluteBound      = new Rectangle(parentSection.AbsoluteDrawingStartPoint.X + image.Location.X, parentSection.AbsoluteDrawingStartPoint.Y + image.Location.Y, image.Width, image.Height);
     ImageRenderer      = new ImageRenderer()
     {
         PixbufRepository = pixbufRepository, DesignMode = true
     };
 }
Exemple #17
0
        static async Task RenderImage(AdaptiveCard card, string image)
        {
            var renderer    = new ImageRenderer(new HostConfig(), String.Empty);
            var imageStream = await renderer.RenderAdaptiveCardAsync(card, 480);

            using (FileStream fileStream = new FileStream(image, FileMode.Create))
            {
                await imageStream.CopyToAsync(fileStream);
            }
        }
        public IActionResult GetBarcode(string data)
        {
            var barcode  = Code128Encoder.Encode(data, true);
            var renderer = new ImageRenderer();
            var stream   = new MemoryStream();

            renderer.Render(barcode, stream);

            return(File(stream.ToArray(), "image/png"));
        }
        protected virtual void DrawBackground(ImageWithDeviceContext destImage)
        {
            if (BackgroundImage == null)
            {
                return;
            }

            ImageRenderer.StretchImageWithOutMargin(destImage, RealX, RealY, Size.Width, Size.Height,
                                                    BackgroundImage, 0, BackgroundImage.Width, BackgroundImage.Height,
                                                    BackgroundImageStretchExcludeMargin, Opacity);
        }
Exemple #20
0
        public static void Main(string[] args)
        {
            // The noise source - a simple Perlin noise generator will do for this sample
            var noiseSource = new Perlin
            {
                Seed = new Random().Next()
            };

            // Create a new, empty, noise map and initialize a new planar noise map builder with it
            var noiseMap        = new NoiseMap();
            var noiseMapBuilder = new PlaneNoiseMapBuilder
            {
                DestNoiseMap = noiseMap,
                SourceModule = noiseSource
            };

            // Set the size of the noise map
            noiseMapBuilder.SetDestSize(1280, 720);

            // Set the bounds of the noise mpa builder
            // These are the coordinates in the noise source from which noise values will be sampled
            noiseMapBuilder.SetBounds(-3, 3, -2, 2);

            // Build the noise map - samples values from the noise module above,
            // using the bounds coordinates we have passed in the builder
            noiseMapBuilder.Build();

            // Create a new image and image renderer
            var image    = new Image();
            var renderer = new ImageRenderer
            {
                SourceNoiseMap   = noiseMap,
                DestinationImage = image
            };

            // The renderer needs to know how to map noise values to colors.
            // In this case, we use one of the predefined gradients, specifically the terrain gradient,
            // which maps lower noise values to blues and greens and higher values to brouns and whites.
            // This simulates the look of a map with water, grass and vegetation, dirt and mountains.
            renderer.BuildTerrainGradient();

            // Before rendering the image, we could set various parameters on the renderer,
            // such as the position and color of the light source.
            // But we aren't going to bother for this sample.

            // Finally, render the image
            renderer.Render();

            // Finally, save the rendered image as a PNG in the current directory
            using (var fs = File.OpenWrite("NoiseMap.png"))
            {
                image.SaveGdiBitmap(fs, ImageFormat.Png);
            }
        }
Exemple #21
0
        public void Render(Camera camera)
        {
            if (Surface.Resolution.X != depthBuffer.Description.Width || Surface.Resolution.Y != depthBuffer.Description.Height)
            {
                OnResize();
            }
            var context = Surface.Context;

            Shapes.MeshCache.FlushPendingUploads(context);

            context.Rasterizer.SetViewport(0, 0, Surface.Resolution.X, Surface.Resolution.Y, 0.0f, 1.0f);

            //Note reversed depth.
            context.ClearDepthStencilView(dsv, DepthStencilClearFlags.Depth, 0, 0);
            context.ClearRenderTargetView(rtv, new SharpDX.Mathematics.Interop.RawColor4());
            context.OutputMerger.SetRenderTargets(dsv, rtv);
            context.Rasterizer.State = rasterizerState;
            context.OutputMerger.SetDepthStencilState(opaqueDepthState);

            //All ray traced shapes use analytic coverage writes to get antialiasing.
            context.OutputMerger.SetBlendState(a2cBlendState);
            SphereRenderer.Render(context, camera, Surface.Resolution, SpanConverter.AsSpan(Shapes.spheres.Span), 0, Shapes.spheres.Count);
            CapsuleRenderer.Render(context, camera, Surface.Resolution, SpanConverter.AsSpan(Shapes.capsules.Span), 0, Shapes.capsules.Count);
            CylinderRenderer.Render(context, camera, Surface.Resolution, SpanConverter.AsSpan(Shapes.cylinders.Span), 0, Shapes.cylinders.Count);

            //Non-raytraced shapes just use regular opaque rendering.
            context.OutputMerger.SetBlendState(opaqueBlendState);
            BoxRenderer.Render(context, camera, Surface.Resolution, SpanConverter.AsSpan(Shapes.boxes.Span), 0, Shapes.boxes.Count);
            TriangleRenderer.Render(context, camera, Surface.Resolution, SpanConverter.AsSpan(Shapes.triangles.Span), 0, Shapes.triangles.Count);
            MeshRenderer.Render(context, camera, Surface.Resolution, SpanConverter.AsSpan(Shapes.meshes.Span), 0, Shapes.meshes.Count);
            LineRenderer.Render(context, camera, Surface.Resolution, SpanConverter.AsSpan(Lines.lines.Span), 0, Lines.lines.Count);

            Background.Render(context, camera);

            //Resolve MSAA rendering down to a single sample buffer for screenspace work.
            //Note that we're not bothering to properly handle tonemapping during the resolve. That's going to hurt quality a little, but the demos don't make use of very wide ranges.
            //(If for some reason you end up expanding the demos to make use of wider HDR, you can make this a custom resolve pretty easily.)
            context.ResolveSubresource(colorBuffer, 0, resolvedColorBuffer, 0, Format.R16G16B16A16_Float);
            context.OutputMerger.SetRenderTargets(resolvedRTV);

            //Glyph and screenspace line drawing rely on the same premultiplied alpha blending transparency. We'll handle their state out here.
            context.OutputMerger.SetBlendState(uiBlendState);
            context.OutputMerger.SetDepthStencilState(uiDepthState);
            ImageRenderer.PreparePipeline(context);
            ImageBatcher.Flush(context, Surface.Resolution, ImageRenderer);
            UILineBatcher.Flush(context, Surface.Resolution, UILineRenderer);
            GlyphRenderer.PreparePipeline(context);
            TextBatcher.Flush(context, Surface.Resolution, GlyphRenderer);

            //Note that, for now, the compress to swap handles its own depth state since it's the only post processing stage.
            context.OutputMerger.SetBlendState(opaqueBlendState);
            context.Rasterizer.State = rasterizerState;
            CompressToSwap.Render(context, resolvedSRV, Surface.RTV);
        }
Exemple #22
0
        public MainWindow()
        {
            InitializeComponent();
            LoadChannelButtons();

            RenderOptions.SetBitmapScalingMode(PianoRollImage, BitmapScalingMode.NearestNeighbor);
            RenderOptions.SetEdgeMode(PianoRollImage, EdgeMode.Aliased);

            _player       = new MidiPlayer(from button in _channelButtons select button.ChannelState);
            _noteRenderer = new ImageRenderer();
        }
Exemple #23
0
        /// <summary>
        /// Loads a tacton from image.
        /// For transcoding an image to a tactile matrix, the static available ImageRender is used.
        /// </summary>
        /// <param name="img">The image to transcode into a tactile matrix.</param>
        /// <returns>the tactile matrix representation of the tacton.</returns>
        /// <remarks>By default, dark pixels of the given image will be turned into raised pins; light pixels
        /// into lowered pins.</remarks>
        public static bool[,] LoadTactonFromImage(Image img)
        {
            bool[,] tacton = new bool[0, 0];

            if (img != null && ImageRenderer != null)
            {
                tacton = ImageRenderer.RenderMatrix(buildImageDummyViewRange(img), img);
            }

            return(tacton);
        }
Exemple #24
0
        private async void viewImage_Click(object sender, RoutedEventArgs e)
        {
            var    renderer    = new ImageRenderer(new HostConfig(), this.Resources);
            var    imageStream = renderer.RenderAdaptiveCard(this._card, 480);
            string path        = System.IO.Path.GetRandomFileName() + ".png";

            using (FileStream fileStream = new FileStream(path, FileMode.Create))
            {
                await imageStream.CopyToAsync(fileStream);
            }
            Process.Start(path);
        }
Exemple #25
0
        public void Render(Camera camera)
        {
            if (Surface.Resolution.X != width || Surface.Resolution.Y != height)
            {
                OnResize();
            }
            Shapes.MeshCache.FlushPendingUploads();

            GL.BindFramebuffer(FramebufferTarget.Framebuffer, framebuffer);
            //Note reversed depth.
            GL.ClearDepth(0.0f);
            GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit);
            GL.Enable(EnableCap.CullFace);
            GL.Enable(EnableCap.DepthTest);
            GL.DepthFunc(DepthFunction.Greater);

            //All ray traced shapes use analytic coverage writes to get antialiasing.
            GL.Enable(EnableCap.SampleAlphaToCoverage);
            SphereRenderer.Render(camera, Surface.Resolution, SpanConverter.AsSpan(Shapes.spheres.Span), 0, Shapes.spheres.Count);
            CapsuleRenderer.Render(camera, Surface.Resolution, SpanConverter.AsSpan(Shapes.capsules.Span), 0, Shapes.capsules.Count);
            CylinderRenderer.Render(camera, Surface.Resolution, SpanConverter.AsSpan(Shapes.cylinders.Span), 0, Shapes.cylinders.Count);

            //Non-raytraced shapes just use regular opaque rendering.
            GL.Disable(EnableCap.SampleAlphaToCoverage);
            BoxRenderer.Render(camera, Surface.Resolution, SpanConverter.AsSpan(Shapes.boxes.Span), 0, Shapes.boxes.Count);
            TriangleRenderer.Render(camera, Surface.Resolution, SpanConverter.AsSpan(Shapes.triangles.Span), 0, Shapes.triangles.Count);
            MeshRenderer.Render(camera, Surface.Resolution, SpanConverter.AsSpan(Shapes.meshes.Span), 0, Shapes.meshes.Count);
            LineRenderer.Render(camera, Surface.Resolution, SpanConverter.AsSpan(Lines.lines.Span), 0, Lines.lines.Count);

            Background.Render(camera);
            GL.Disable(EnableCap.CullFace);
            GL.Disable(EnableCap.DepthTest);

            //Resolve MSAA rendering down to a single sample buffer for screenspace work.
            //Note that we're not bothering to properly handle tonemapping during the resolve. That's going to hurt quality a little, but the demos don't make use of very wide ranges.
            //(If for some reason you end up expanding the demos to make use of wider HDR, you can make this a custom resolve pretty easily.)
            GL.BlitNamedFramebuffer(framebuffer, resolvedFramebuffer, 0, 0, width, height, 0, 0, width, height, ClearBufferMask.ColorBufferBit, BlitFramebufferFilter.Nearest);
            GL.BindFramebuffer(FramebufferTarget.Framebuffer, resolvedFramebuffer);

            //Glyph and screenspace line drawing rely on the same premultiplied alpha blending transparency. We'll handle their state out here.
            GL.Enable(EnableCap.Blend);
            GL.BlendFunc(BlendingFactorSrc.One, BlendingFactorDest.OneMinusSrcAlpha);
            GL.BlendEquation(BlendEquationMode.FuncAdd);
            ImageRenderer.PreparePipeline();
            ImageBatcher.Flush(Surface.Resolution, ImageRenderer);
            UILineBatcher.Flush(Surface.Resolution, UILineRenderer);
            GlyphRenderer.PreparePipeline();
            TextBatcher.Flush(Surface.Resolution, GlyphRenderer);
            GL.Disable(EnableCap.Blend);

            GL.BindFramebuffer(FramebufferTarget.Framebuffer, 0);
            CompressToSwap.Render(resolvedColorBuffer);
        }
        public void Render_Barcode2D()
        {
            // Arrange
            var      renderer = new ImageRenderer();
            IBarcode barcode  = QrEncoder.Encode("Hello Unicode\nHave a nice day!", ErrorCorrectionLevel.L, Encoding.Unicode);

            // Act
            byte[] data = RenderBarcodeToByteArray(renderer, barcode);

            // Assert
            data.Should().NotBeNull();
        }
        public void Render_Barcode1D()
        {
            // Arrange
            var      renderer = new ImageRenderer();
            IBarcode barcode  = Code128Encoder.Encode("Wikipedia");

            // Act
            byte[] data = RenderBarcodeToByteArray(renderer, barcode);

            // Assert
            data.Should().NotBeNull();
        }
        public void CreateTestImageRenderer()
        {
            testTextureImage = new Image();

            testRenderer = new ImageRenderer();
            testRenderer.ClearGradient();
            testRenderer.AddGradientPoint(-1.00, new Color(189, 94, 4, 255));
            testRenderer.AddGradientPoint(0.50, new Color(144, 48, 6, 255));
            testRenderer.AddGradientPoint(1.00, new Color(60, 10, 8, 255));

            testRenderer.EnableLight = false;
        }
        public static Bitmap RenderLayer(ImageGraphic layer, int dstWidth, int dstHeight)
        {
            Bitmap    bitmap     = new Bitmap(dstWidth, dstHeight);
            Rectangle clientArea = new Rectangle(0, 0, dstWidth, dstHeight);

            BitmapData bitmapData    = LockBitmap(bitmap);
            int        bytesPerPixel = 4;

            ImageRenderer.Render(layer, bitmapData.Scan0, bitmapData.Width, bytesPerPixel, clientArea);
            bitmap.UnlockBits(bitmapData);
            return(bitmap);
        }
        public GraniteTextureTest()
        {
            module = new Turbulence
            {
                Seed      = 2,
                Frequency = 4,
                Power     = 1.0 / 8.0,
                Roughness = 6,
                Source0   = new Add
                {
                    Source0 = new Billow
                    {
                        Seed        = 1,
                        Frequency   = 8,
                        Persistence = 0.625,
                        Lacunarity  = 2.18359375,
                        OctaveCount = 6,
                    },
                    Source1 = new ScaleBias
                    {
                        Scale   = -0.5,
                        Bias    = 0,
                        Source0 = new Cell
                        {
                            Seed           = 1,
                            Frequency      = 16,
                            EnableDistance = true,
                        }
                    }
                }
            };

            noiseMap = new NoiseMap();

            textureImage = new Image();

            renderer = new ImageRenderer
            {
                EnableLight    = true,
                LightAzimuth   = 135,
                LightElevation = 60,
                LightContrast  = 2,
                LightColor     = new Color(255, 255, 255, 0),
            };
            renderer.AddGradientPoint(-1.0000, new Color(0, 0, 0, 255));
            renderer.AddGradientPoint(-0.9375, new Color(0, 0, 0, 255));
            renderer.AddGradientPoint(-0.8750, new Color(216, 216, 242, 255));
            renderer.AddGradientPoint(0.0000, new Color(191, 191, 191, 255));
            renderer.AddGradientPoint(0.5000, new Color(210, 116, 125, 255));
            renderer.AddGradientPoint(0.7500, new Color(210, 113, 98, 255));
            renderer.AddGradientPoint(1.0000, new Color(255, 176, 192, 255));
        }
Exemple #31
0
        private async void seq_save_Click(object sender, RoutedEventArgs e)
        {
            int width  = 0;
            int height = 0;

            if (!string.IsNullOrWhiteSpace(MaxWidth.Text) && MaxWidth.Text != "0")
            {
                width = Convert.ToInt32(MaxWidth.Text);
            }

            if (!string.IsNullOrWhiteSpace(MaxHeight.Text) && MaxHeight.Text != "0")
            {
                height = Convert.ToInt32(MaxHeight.Text);
            }

            var text = msg_string.Text.TrimEnd(new char[] { '\r', '\n' });

            List <string> stringsequenced = new List <string>();

            for (int i = 1; i <= text.Length; i++)
            {
                char[] container = new char[i];

                for (int x = 0; x < i; x++)
                {
                    container[x] = text[x];
                }

                stringsequenced.Add(new string(container));
            }

            await Task.Run(() =>
            {
                int counter = 1;
                foreach (var subtext in stringsequenced)
                {
                    Dispatcher.Invoke(() =>
                    {
                        msg_string.Text = subtext;

                        var res = ImageRenderer.RenderToBWImg(Encoding.UTF8.GetBytes(subtext), ((scale_options)ScaleOption.SelectedItem).value, invert_checkbox.IsChecked ?? false, width, height);

                        PngBitmapEncoder pngencoder = new PngBitmapEncoder();

                        pngencoder.Frames.Add(BitmapFrame.Create(res));

                        using (var stream = new FileStream($"Test_{counter++}.png", FileMode.Create))
                            pngencoder.Save(stream);
                    });
                }
            });
        }
        public void Render_PassNullAsOutputStream_ShouldThrowException()
        {
            // Arrange
            var renderer    = new ImageRenderer();
            var barcodeMock = new Mock <IBarcode>();

            // Act
            Action action = () => renderer.Render(barcodeMock.Object, null);

            // Assert
            action.Should().Throw <ArgumentNullException>()
            .And.ParamName.Should().Be("outputStream");
        }