public void CanStartAndReachMainMenu()
    {
        UiSystems.MainMenu.Show(MainMenuPage.MainMenu);

        Game.RenderFrame();
        ImageComparison.AssertImagesEqual(Game.TakeScreenshot(), "Game/MainMenu.png");
    }
    public void TestBorderAndBackground()
    {
        var backgroundAndBorder = Style(new StyleDefinition()
        {
            BackgroundColor = PackedLinearColorA.FromHex("#666666"),
            BorderColor     = PackedLinearColorA.FromHex("#AAAAAA"),
            BorderWidth     = 2
        });
        var backgroundOnly = Style(new StyleDefinition()
        {
            BackgroundColor = PackedLinearColorA.FromHex("#666666"),
            BorderColor     = PackedLinearColorA.FromHex("#AAAAAA")
        });
        var borderOnly = Style(new StyleDefinition()
        {
            BorderColor = PackedLinearColorA.FromHex("#AAAAAA"),
            BorderWidth = 1
        });
        var thickBorder = Style(new StyleDefinition()
        {
            BorderColor = PackedLinearColorA.FromHex("#AAAAAA"),
            BorderWidth = 4
        });

        Device.BeginDraw();
        Device.TextEngine.RenderBackgroundAndBorder(25, 75, 100, 50, backgroundAndBorder);
        Device.TextEngine.RenderBackgroundAndBorder(25, 275, 100, 50, borderOnly);
        Device.TextEngine.RenderBackgroundAndBorder(225, 275, 100, 50, thickBorder);
        Device.TextEngine.RenderBackgroundAndBorder(225, 75, 100, 50, backgroundOnly);
        Device.EndDraw();

        var screenshot = TakeScreenshot();

        ImageComparison.AssertImagesEqual(screenshot, "Core/GFX/TextRendering/BackgroundAndBorder.png");
    }
    public void TestVeryLongChainLightning()
    {
        Device.BeginDraw();
        _renderer.Render(Viewport.Camera, 0, 0, CameraCenter, CameraCenter + new Vector3(0, 0, 10000));
        Device.EndDraw();

        using var screenshot = TakeScreenshot();
        ImageComparison.AssertImagesEqual(screenshot, "Core/Systems/Vfx/ChainLightningVeryLong.png");
    }
    private void RenderAndCompare(TextLayout layout, string refName)
    {
        Device.BeginDraw();
        Device.TextEngine.RenderTextLayout(200, 200, layout);
        Device.EndDraw();

        var screenshot = TakeScreenshot();

        ImageComparison.AssertImagesEqual(screenshot, refName);
    }
    public void TestHeightDifferenceChainLightning()
    {
        var a = CameraCenter - new Vector3(200, -25, 0);
        var b = CameraCenter;
        var c = CameraCenter + new Vector3(200, 25, 0);

        Device.BeginDraw();
        _renderer.Render(Viewport.Camera, 0, 0, a, b);
        _renderer.Render(Viewport.Camera, 0, 250, b, c);
        Device.EndDraw();

        using var screenshot = TakeScreenshot();
        MarkWorldPositions(screenshot, a, b, c);
        ImageComparison.AssertImagesEqual(screenshot, "Core/Systems/Vfx/ChainLightningHeightDifference.png");
    }
Esempio n. 6
0
    public void TestRasterization()
    {
        const int dimension = 192;
        var       buffer    = new byte[dimension * dimension];

        Span <Vector2> vertices = stackalloc Vector2[3]
        {
            new Vector2(5.5f, 10.2f),
            new Vector2(5.5f + 16, 10.2f + 5.0f),
            new Vector2(5.5f - 5, 10.2f + 5.0f)
        };

        TriangleRasterizer.Rasterize(dimension, dimension, buffer, vertices, 0xFF);

        using var image = Image.LoadPixelData <L8>(buffer, dimension, dimension);
        ImageComparison.AssertImagesEqual(image, "FogOfWar/tesselated_expected.png");
    }
}