Search in sources :

Example 41 with Screen

use of com.b3dgs.lionengine.graphic.Screen in project lionengine by b3dgs.

the class ScreenHeadlessTest method testScreen.

/**
 * Test screen.
 *
 * @param config The config to test with.
 */
private void testScreen(Config config) {
    final Screen screen = Graphics.createScreen(config);
    final InputDeviceKeyListener listener = new InputDeviceKeyListener() {

        @Override
        public void keyReleased(int keyCode, char keyChar) {
        // Mock
        }

        @Override
        public void keyPressed(int keyCode, char keyChar) {
        // Mock
        }
    };
    final AtomicBoolean lost = new AtomicBoolean();
    final AtomicBoolean gained = new AtomicBoolean();
    final AtomicBoolean closed = new AtomicBoolean();
    final ScreenListener screenListener = new ScreenListener() {

        @Override
        public void notifyFocusLost() {
            lost.set(true);
        }

        @Override
        public void notifyFocusGained() {
            gained.set(true);
        }

        @Override
        public void notifyClosed() {
            closed.set(true);
        }
    };
    assertFalse(screen.isReady());
    screen.addListener(screenListener);
    screen.start();
    screen.awaitReady();
    screen.addKeyListener(listener);
    screen.preUpdate();
    screen.update();
    screen.showCursor();
    screen.hideCursor();
    screen.requestFocus();
    screen.onSourceChanged(UtilTests.RESOLUTION_320_240);
    assertNotNull(screen.getConfig());
    assertNotNull(screen.getGraphic());
    assertTrue(screen.getReadyTimeOut() > -1L);
    assertTrue(screen.getX() > -1);
    assertTrue(screen.getY() > -1);
    assertTrue(screen.isReady());
    while (config.isWindowed() && !gained.get()) {
        continue;
    }
    screen.setIcons(Arrays.asList(Medias.create("void")));
    screen.setIcons(Arrays.asList(Medias.create("image.png")));
    screen.dispose();
    assertEquals(0, screen.getX());
    assertEquals(0, screen.getY());
    screen.removeListener(screenListener);
}
Also used : AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean) ScreenListener(com.b3dgs.lionengine.graphic.ScreenListener) Screen(com.b3dgs.lionengine.graphic.Screen) InputDeviceKeyListener(com.b3dgs.lionengine.InputDeviceKeyListener)

Example 42 with Screen

use of com.b3dgs.lionengine.graphic.Screen in project lionengine by b3dgs.

the class LoopFrameSkippingTest method testMaxRate.

/**
 * Test with max rate.
 */
@Test
void testMaxRate() {
    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(10_000L, thread::join);
    assertTrue(tick.get() >= maxTick.get(), tick.get() + " " + maxTick.get());
    assertTrue(rendered.get() <= tick.get(), rendered.get() + " " + tick.get());
    assertTrue(rendered.get() > 0, String.valueOf(rendered.get()));
    assertTrue(computed.get() > 0, 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 43 with Screen

use of com.b3dgs.lionengine.graphic.Screen in project lionengine by b3dgs.

the class LoopFrameSkippingTest 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(10_000L, thread::join);
    assertTrue(tick.get() >= maxTick.get(), tick.get() + " " + maxTick.get());
    final int expectedRate = screen.getConfig().getOutput().getRate();
    assertTrue(computed.get() <= expectedRate, String.valueOf(computed.get()));
    assertTrue(computed.get() > 0, 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 44 with Screen

use of com.b3dgs.lionengine.graphic.Screen in project lionengine by b3dgs.

the class LoopFrameSkippingTest method testNoSync.

/**
 * Test without sync.
 */
@Test
void testNoSync() {
    ScreenMock.setScreenWait(false);
    final Screen screen = new ScreenMock(new Config(new Resolution(320, 240, 0), 16, true));
    final Thread thread = getTask(screen);
    thread.start();
    assertTimeout(10_000L, thread::join);
    assertEquals(maxTick.get(), tick.get());
    assertEquals(tick.get(), rendered.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 45 with Screen

use of com.b3dgs.lionengine.graphic.Screen in project lionengine by b3dgs.

the class LoopFrameSkippingTest 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));
    final Thread thread = getTask(screen);
    thread.start();
    assertTimeout(10_000L, thread::join);
    assertEquals(maxTick.get(), tick.get());
    assertTrue(rendered.get() <= tick.get(), rendered.get() + " " + tick.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)

Aggregations

Screen (com.b3dgs.lionengine.graphic.Screen)56 Config (com.b3dgs.lionengine.Config)47 Resolution (com.b3dgs.lionengine.Resolution)45 ScreenMock (com.b3dgs.lionengine.graphic.ScreenMock)45 Test (org.junit.jupiter.api.Test)26 Test (org.junit.Test)23 Semaphore (java.util.concurrent.Semaphore)4 AtomicReference (java.util.concurrent.atomic.AtomicReference)4 InputDeviceKeyListener (com.b3dgs.lionengine.InputDeviceKeyListener)3 ScreenListener (com.b3dgs.lionengine.graphic.ScreenListener)3 AtomicBoolean (java.util.concurrent.atomic.AtomicBoolean)3 FactoryGraphicMock (com.b3dgs.lionengine.graphic.FactoryGraphicMock)2 Context (com.b3dgs.lionengine.Context)1 InputDevice (com.b3dgs.lionengine.InputDevice)1