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);
}
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()));
}
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()));
}
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()));
}
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()));
}
Aggregations