Search in sources :

Example 36 with Screen

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

the class LoopLockedTest method testNoSync.

/**
 * Test without sync
 *
 * @throws InterruptedException If error.
 */
@Test(timeout = 1000L)
public void testNoSync() throws InterruptedException {
    ScreenMock.setScreenWait(false);
    final Screen screen = new ScreenMock(new Config(new Resolution(320, 240, 0), 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);
}
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 37 with Screen

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

the class LoopLockedTest method testNoSyncFullscreen.

/**
 * Test without sync
 *
 * @throws InterruptedException If error.
 */
@Test(timeout = 1000L)
public void testNoSyncFullscreen() throws InterruptedException {
    ScreenMock.setScreenWait(false);
    final Screen screen = new ScreenMock(new Config(new Resolution(320, 240, 0), 16, false));
    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);
}
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 38 with Screen

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

the class LoopLockedTest method testUnready.

/**
 * Test with not ready screen.
 *
 * @throws InterruptedException If error.
 */
@Test(timeout = 1000L)
public void testUnready() throws InterruptedException {
    ScreenMock.setScreenWait(true);
    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();
    latch.await();
    loop.stop();
    thread.join();
    Assert.assertEquals(0, tick.get());
    Assert.assertEquals(0, rendered.get());
    Assert.assertEquals(-1, 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.Test)

Example 39 with Screen

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

the class LoopUnlockedTest method testUnready.

/**
 * Test with not ready screen.
 *
 * @throws InterruptedException If error.
 */
@Test(timeout = 1000L)
public void testUnready() throws InterruptedException {
    ScreenMock.setScreenWait(true);
    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();
    latch.await();
    loop.stop();
    thread.join();
    Assert.assertEquals(0, rendered.get());
    Assert.assertEquals(0, tick.get());
    Assert.assertEquals(-1, 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.Test)

Example 40 with Screen

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

the class ScreenAwtTest 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());
    assertTimeout(10_000L, () -> {
        while (config.isWindowed() && !gained.get()) {
            continue;
        }
    });
    assertThrows(() -> screen.setIcons(Arrays.asList(Medias.create("void"))), "[void] Cannot open the media !");
    screen.setIcons(Arrays.asList(Medias.create("image.png")));
    final javax.swing.JFrame frame = (javax.swing.JFrame) UtilReflection.getField(screen, "frame");
    frame.dispatchEvent(new java.awt.event.WindowEvent(frame, java.awt.event.WindowEvent.WINDOW_CLOSING));
    assertTimeout(10_000L, () -> {
        while (config.isWindowed() && !gained.get()) {
            continue;
        }
    });
    screen.dispose();
    Verbose.info("*********************************** EXPECTED VERBOSE ***********************************");
    assertEquals(0, screen.getX());
    assertEquals(0, screen.getY());
    Verbose.info("****************************************************************************************");
    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)

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