use of com.b3dgs.lionengine.Resolution in project lionengine by b3dgs.
the class LoopUnlockedTest 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(computed.get()), computed.get() >= screen.getConfig().getOutput().getRate());
}
use of com.b3dgs.lionengine.Resolution in project lionengine by b3dgs.
the class LoopUnlockedTest 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());
Assert.assertTrue(String.valueOf(computed.get()), computed.get() > 0);
}
use of com.b3dgs.lionengine.Resolution in project lionengine by b3dgs.
the class AppletAwtTest method testApplet.
/**
* Test applet.
*/
@Test
public void testApplet() {
final AppletAwt applet = new AppletAwt();
final Resolution resolution = new Resolution(320, 240, 60);
final Config config = new Config(resolution, 32, true);
config.setApplet(null);
Assert.assertFalse(config.getApplet(AppletAwt.class).isPresent());
config.setApplet(applet);
Assert.assertTrue(config.getApplet(AppletAwt.class).isPresent());
}
use of com.b3dgs.lionengine.Resolution in project lionengine by b3dgs.
the class ScreenAwtTest method testFullscreen.
/**
* Test full screen.
*
* @throws Exception If error.
*/
@Test(timeout = TIMEOUT)
public void testFullscreen() throws Exception {
final GraphicsDevice gd = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
if (gd.isFullScreenSupported()) {
final int width = gd.getDisplayMode().getWidth();
final int height = gd.getDisplayMode().getHeight();
final Resolution resolution = new Resolution(width, height, 60);
final Config config = new Config(resolution, 32, false, Medias.create(IMAGE));
config.setSource(resolution);
testScreen(config);
testHeadless(config);
}
}
use of com.b3dgs.lionengine.Resolution in project lionengine by b3dgs.
the class LoopExtrapolated method start.
/*
* Loop
*/
@Override
public void start(Screen screen, Frame frame) {
Check.notNull(screen);
Check.notNull(frame);
final Config config = screen.getConfig();
final Resolution source = config.getSource();
final Resolution output = config.getOutput();
final boolean sync = config.isWindowed() && output.getRate() > 0;
final double maxFrameTimeNano = getMaxFrameTime(output);
double extrp = 1.0;
isRunning = true;
while (isRunning) {
if (screen.isReady()) {
final long lastTime = System.nanoTime();
frame.update(extrp);
screen.preUpdate();
frame.render();
screen.update();
while (sync && System.nanoTime() - lastTime < maxFrameTimeNano) {
Thread.yield();
}
final long currentTime = Math.max(lastTime + 1L, System.nanoTime());
extrp = source.getRate() / ONE_SECOND_IN_NANO * (currentTime - lastTime);
frame.computeFrameRate(lastTime, currentTime);
} else {
frame.check();
UtilSequence.pause(Constant.DECADE);
}
if (!Engine.isStarted()) {
isRunning = false;
}
}
}
Aggregations