Search in sources :

Example 31 with Config

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

the class LoopFrameSkippingTest method testSlowRender.

/**
 * Test with slow rendering.
 */
@Test
void testSlowRender() {
    ScreenMock.setScreenWait(false);
    final Screen screen = new ScreenMock(new Config(new Resolution(320, 240, 50), 16, true));
    pause.set(50L);
    final Thread thread = getTask(screen);
    thread.start();
    assertTimeout(10_000L, thread::join);
    assertTrue(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));
    assertTrue(min || max, tick.get() + " " + rendered.get());
    final int expectedRate = screen.getConfig().getOutput().getRate();
    assertTrue(computed.get() < expectedRate / 2, String.valueOf(computed.get()));
    assertTrue(computed.get() > expectedRate / 2 - expectedRate, String.valueOf(computed.get()));
}
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.jupiter.api.Test)

Example 32 with Config

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

the class LoopExtrapolatedTest method testNoSyncFullscreen.

/**
 * Test without sync full screen.
 */
@Test
void testNoSyncFullscreen() {
    ScreenMock.setScreenWait(false);
    final Screen screen = new ScreenMock(new Config(new Resolution(320, 240, 0), 16, false));
    loop.notifyRateChanged(50);
    final Thread thread = getTask(screen);
    thread.start();
    assertTimeout(1000L, thread::join);
    assertEquals(maxTick.get(), tick.get());
    assertEquals(tick.get(), rendered.get());
    assertTrue(extrapolation.get().doubleValue() > 0, String.valueOf(extrapolation.get()));
    final int expectedRate = screen.getConfig().getOutput().getRate();
    assertTrue(computed.get() > expectedRate, String.valueOf(computed.get()));
}
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.jupiter.api.Test)

Example 33 with Config

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

the class LoopExtrapolatedTest method testUnready.

/**
 * Test with not ready screen.
 */
@Test
void testUnready() {
    ScreenMock.setScreenWait(true);
    try {
        final Screen screen = new ScreenMock(new Config(new Resolution(320, 240, 50), 16, true));
        final Thread thread = getTask(screen);
        thread.start();
        assertTimeout(1000L, latch::await);
        loop.stop();
        assertTimeout(1000L, thread::join);
        assertEquals(0, tick.get());
        assertEquals(0, rendered.get());
        assertNull(extrapolation.get());
        assertEquals(-1, computed.get());
    } finally {
        ScreenMock.setScreenWait(false);
    }
}
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.jupiter.api.Test)

Example 34 with Config

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

the class LoopExtrapolatedTest method testLoop.

/**
 * Test loop.
 */
@Test
void testLoop() {
    ScreenMock.setScreenWait(false);
    final Screen screen = new ScreenMock(new Config(new Resolution(320, 240, 50), 16, true));
    final Thread thread = getTask(screen);
    thread.start();
    assertTimeout(1000L, thread::join);
    assertEquals(maxTick.get(), tick.get());
    assertEquals(tick.get(), rendered.get());
    assertTrue(extrapolation.get().doubleValue() > 0.0, String.valueOf(extrapolation.get().doubleValue()));
    final int expectedRate = screen.getConfig().getOutput().getRate();
    assertTrue(computed.get() <= expectedRate, String.valueOf(computed.get()));
}
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.jupiter.api.Test)

Example 35 with Config

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

the class LoopHybridTest method testSlowRender.

/**
 * Test with slow rendering.
 */
@Test
void testSlowRender() {
    ScreenMock.setScreenWait(false);
    final Screen screen = new ScreenMock(new Config(new Resolution(320, 240, 100), 16, true));
    pause.set(50L);
    final Thread thread = getTask(screen);
    thread.start();
    assertTimeout(10_000L, thread::join);
    assertTrue(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));
    assertTrue(min || max, tick.get() + " " + rendered.get());
    final int expectedRate = screen.getConfig().getOutput().getRate();
    assertTrue(computed.get() < expectedRate / 2, String.valueOf(computed.get()));
    assertTrue(computed.get() > expectedRate / 2 - expectedRate, String.valueOf(computed.get()));
}
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.jupiter.api.Test)

Aggregations

Config (com.b3dgs.lionengine.Config)89 Resolution (com.b3dgs.lionengine.Resolution)75 Screen (com.b3dgs.lionengine.graphic.Screen)47 ScreenMock (com.b3dgs.lionengine.graphic.ScreenMock)45 Test (org.junit.jupiter.api.Test)42 Test (org.junit.Test)38 FactoryGraphicMock (com.b3dgs.lionengine.graphic.FactoryGraphicMock)2 Semaphore (java.util.concurrent.Semaphore)2 AtomicReference (java.util.concurrent.atomic.AtomicReference)2 Context (com.b3dgs.lionengine.Context)1 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 ImageBuffer (com.b3dgs.lionengine.graphic.ImageBuffer)1 Rasterbar (com.b3dgs.lionengine.graphic.engine.Rasterbar)1 Sequencer (com.b3dgs.lionengine.graphic.engine.Sequencer)1 SourceResolutionProvider (com.b3dgs.lionengine.graphic.engine.SourceResolutionProvider)1 FilterBilinear (com.b3dgs.lionengine.graphic.filter.FilterBilinear)1