Exemple #1
0
        public static unsafe void TestRasterize()
        {
            Rasterizer.StartRasterize(CRenderSettings.ResolutionF);
            RenderBuffer <float>     tex0    = new RenderBuffer <float>(CRenderSettings.Resolution, 3);
            CharRenderBuffer <float> texChar = new CharRenderBuffer <float>(tex0);
            Vector2 *points = stackalloc Vector2[4];

            for (float i = 0; i < JMath.PI_TWO; i += .02f)
            {
                Vector2 dir      = new Vector2(MathF.Cos(i) * .3f, MathF.Sin(i) * .3f);
                Vector2 orthoDir = new Vector2(-dir.Y, dir.X);
                points[0] = new Vector2(.5f, .5f) + dir;
                points[1] = new Vector2(.5f, .5f) - dir;
                points[2] = new Vector2(.5f, .5f) + orthoDir;
                points[3] = new Vector2(.5f, .5f) - orthoDir;
                LinePrimitive *line = stackalloc LinePrimitive[1] {
                    new LinePrimitive(points, null, 0)
                };
                Rasterizer.Rasterize <Line, LinePrimitive>(line);
                tex0.WritePixel(Rasterizer.ContriveResult(), new GenericVector <float>(3)
                {
                    1f, 1f, 1f
                });
                CRenderer.Render(texChar);
                tex0.Clear();
                Thread.Sleep(16);
            }

            Rasterizer.EndRasterize();
        }
Exemple #2
0
        public static unsafe void TestRasterizerLine()
        {
            Vector2 *line = stackalloc Vector2[2] {
                Vector2.Zero, Vector2.One
            };

            Rasterizer.StartRasterize(new Vector2(100, 100));
            Rasterizer.SetPoints(line);
            Rasterizer.Line();
            var resultArr = Rasterizer.ContriveResult();

            Assert.AreEqual(resultArr.Length, 100, 1);
            Rasterizer.EndRasterize();
        }
Exemple #3
0
        public static unsafe void TestRasterizerLine()
        {
            Vector2 *coords = stackalloc Vector2[2] {
                Vector2.Zero, Vector2.One
            };

            Rasterizer.StartRasterize(new Vector2(100, 100));
            LinePrimitive *line = stackalloc LinePrimitive[1] {
                new LinePrimitive(coords, null, 0)
            };

            Rasterizer.Rasterize <Line, LinePrimitive>(line);
            var resultArr = Rasterizer.ContriveResult();

            Assert.AreEqual(resultArr.Length, 100, 1);
            Rasterizer.EndRasterize();
        }
    }