Search in sources :

Example 51 with Resolution

use of com.b3dgs.lionengine.Resolution in project lionengine by b3dgs.

the class LoopExtrapolatedTest method testLoop.

/**
 * Test loop.
 *
 * @throws InterruptedException If error.
 */
@Test(timeout = 1000L)
public void testLoop() throws InterruptedException {
    ScreenMock.setScreenWait(false);
    final Screen screen = new ScreenMock(new Config(new Resolution(320, 240, 50), 16, true));
    screen.getConfig().setSource(new Resolution(320, 240, 50));
    final Thread thread = getTask(screen);
    thread.start();
    thread.join();
    Assert.assertEquals(maxTick.get(), tick.get());
    Assert.assertEquals(tick.get(), rendered.get());
    Assert.assertTrue(String.valueOf(extrapolation.get().doubleValue()), extrapolation.get().doubleValue() > 0.0);
    final int expectedRate = screen.getConfig().getOutput().getRate();
    Assert.assertTrue(String.valueOf(computed.get()), computed.get() <= expectedRate);
}
Also used : Screen(com.b3dgs.lionengine.graphic.Screen) Config(com.b3dgs.lionengine.Config) ScreenMock(com.b3dgs.lionengine.graphic.ScreenMock) Resolution(com.b3dgs.lionengine.Resolution) Test(org.junit.Test)

Example 52 with Resolution

use of com.b3dgs.lionengine.Resolution in project lionengine by b3dgs.

the class LoopFrameSkippingTest method testSpikeOfDeath.

/**
 * Test with spike of death.
 *
 * @throws InterruptedException If error.
 */
@Test(timeout = 2000L)
public void testSpikeOfDeath() throws InterruptedException {
    ScreenMock.setScreenWait(false);
    final Screen screen = new ScreenMock(new Config(new Resolution(320, 240, 50), 16, true));
    screen.getConfig().setSource(new Resolution(320, 240, 50));
    final long maxFrameTime = Math.round(LoopFrameSkipping.MAX_FRAME_TIME_NANO / Constant.NANO_TO_MILLI);
    pause.set(maxFrameTime * 2);
    final Thread thread = getTask(screen);
    thread.start();
    thread.join();
    final double frameTimeMilli = 1000.0 / screen.getConfig().getSource().getRate();
    Assert.assertEquals(Math.round(Math.floor(maxFrameTime / frameTimeMilli)), tick.get());
    Assert.assertEquals(2, rendered.get());
    final int expectedRate = screen.getConfig().getOutput().getRate();
    Assert.assertTrue(String.valueOf(computed.get()), computed.get() < expectedRate);
}
Also used : Screen(com.b3dgs.lionengine.graphic.Screen) Config(com.b3dgs.lionengine.Config) ScreenMock(com.b3dgs.lionengine.graphic.ScreenMock) Resolution(com.b3dgs.lionengine.Resolution) Test(org.junit.Test)

Example 53 with Resolution

use of com.b3dgs.lionengine.Resolution in project lionengine by b3dgs.

the class LoopFrameSkippingTest method testEngineNotStarted.

/**
 * Test with not started engine.
 *
 * @throws InterruptedException If error.
 */
@Test(timeout = 1000L)
public void testEngineNotStarted() throws InterruptedException {
    ScreenMock.setScreenWait(false);
    final Screen screen = new ScreenMock(new Config(new Resolution(320, 240, 50), 16, true));
    screen.getConfig().setSource(new Resolution(320, 240, 50));
    maxTick.set(-1);
    final Thread thread = getTask(screen);
    thread.start();
    while (tick.get() < 1) {
    // Continue
    }
    Engine.terminate();
    thread.join();
    Assert.assertEquals(tick.get(), rendered.get());
    final int expectedRate = screen.getConfig().getOutput().getRate();
    Assert.assertTrue(String.valueOf(computed.get()), computed.get() <= expectedRate);
}
Also used : Screen(com.b3dgs.lionengine.graphic.Screen) Config(com.b3dgs.lionengine.Config) ScreenMock(com.b3dgs.lionengine.graphic.ScreenMock) Resolution(com.b3dgs.lionengine.Resolution) Test(org.junit.Test)

Example 54 with Resolution

use of com.b3dgs.lionengine.Resolution in project lionengine by b3dgs.

the class LoopFrameSkippingTest method testLoop.

/**
 * Test loop.
 *
 * @throws InterruptedException If error.
 */
@Test(timeout = 1000L)
public void testLoop() throws InterruptedException {
    ScreenMock.setScreenWait(false);
    final Screen screen = new ScreenMock(new Config(new Resolution(320, 240, 50), 16, true));
    screen.getConfig().setSource(new Resolution(320, 240, 50));
    final Thread thread = getTask(screen);
    thread.start();
    thread.join();
    Assert.assertEquals(maxTick.get(), tick.get());
    Assert.assertEquals(tick.get(), rendered.get());
    final int expectedRate = screen.getConfig().getOutput().getRate();
    Assert.assertTrue(String.valueOf(computed.get()), computed.get() <= expectedRate);
    Assert.assertTrue(String.valueOf(computed.get()), computed.get() > 0);
}
Also used : Screen(com.b3dgs.lionengine.graphic.Screen) Config(com.b3dgs.lionengine.Config) ScreenMock(com.b3dgs.lionengine.graphic.ScreenMock) Resolution(com.b3dgs.lionengine.Resolution) Test(org.junit.Test)

Example 55 with Resolution

use of com.b3dgs.lionengine.Resolution in project lionengine by b3dgs.

the class LoopFrameSkippingTest method testSlowRender.

/**
 * Test with slow rendering
 *
 * @throws InterruptedException If error.
 */
@Test(timeout = 1000L)
public void testSlowRender() throws InterruptedException {
    ScreenMock.setScreenWait(false);
    final Screen screen = new ScreenMock(new Config(new Resolution(320, 240, 50), 16, true));
    screen.getConfig().setSource(new Resolution(320, 240, 50));
    pause.set(screen.getConfig().getSource().getRate());
    final Thread thread = getTask(screen);
    thread.start();
    thread.join();
    Assert.assertTrue(String.valueOf(tick.get() + " " + maxTick.get()), tick.get() >= maxTick.get());
    final boolean min = rendered.get() >= Math.round(Math.floor(tick.get() / 2.0));
    final boolean max = rendered.get() <= Math.round(Math.ceil(tick.get() / 2.0));
    Assert.assertTrue(String.valueOf(tick.get() + " " + rendered.get()), min || max);
    final int expectedRate = screen.getConfig().getOutput().getRate();
    Assert.assertTrue(String.valueOf(computed.get()), computed.get() < expectedRate / 2);
    Assert.assertTrue(String.valueOf(computed.get()), computed.get() > expectedRate / 2 - expectedRate);
}
Also used : Screen(com.b3dgs.lionengine.graphic.Screen) Config(com.b3dgs.lionengine.Config) ScreenMock(com.b3dgs.lionengine.graphic.ScreenMock) Resolution(com.b3dgs.lionengine.Resolution) Test(org.junit.Test)

Aggregations

Resolution (com.b3dgs.lionengine.Resolution)95 Config (com.b3dgs.lionengine.Config)75 Screen (com.b3dgs.lionengine.graphic.Screen)45 ScreenMock (com.b3dgs.lionengine.graphic.ScreenMock)45 Test (org.junit.jupiter.api.Test)45 Test (org.junit.Test)33 Graphic (com.b3dgs.lionengine.graphic.Graphic)3 Media (com.b3dgs.lionengine.Media)2 LionEngineException (com.b3dgs.lionengine.LionEngineException)1 FilterBilinear (com.b3dgs.lionengine.core.filter.FilterBilinear)1 FilterBlur (com.b3dgs.lionengine.core.filter.FilterBlur)1 FilterHq2x (com.b3dgs.lionengine.core.filter.FilterHq2x)1 FilterHq3x (com.b3dgs.lionengine.core.filter.FilterHq3x)1 SourceResolutionDelegate (com.b3dgs.lionengine.graphic.engine.SourceResolutionDelegate)1 FilterBilinear (com.b3dgs.lionengine.graphic.filter.FilterBilinear)1 FilterBlur (com.b3dgs.lionengine.graphic.filter.FilterBlur)1 FilterHq2x (com.b3dgs.lionengine.graphic.filter.FilterHq2x)1 FilterHq3x (com.b3dgs.lionengine.graphic.filter.FilterHq3x)1 DisplayMode (java.awt.DisplayMode)1 GraphicsDevice (java.awt.GraphicsDevice)1