use of com.b3dgs.lionengine.Config 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.Config 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.Config in project lionengine by b3dgs.
the class ScreenAwtTest method testWindowed.
/**
* Test windowed screen.
*
* @throws Exception If error.
*/
@Test(timeout = TIMEOUT)
public void testWindowed() throws Exception {
final Config config = new Config(com.b3dgs.lionengine.util.UtilTests.RESOLUTION_320_240, 32, true, Medias.create(IMAGE));
config.setSource(com.b3dgs.lionengine.util.UtilTests.RESOLUTION_320_240);
testScreen(config);
testHeadless(config);
}
use of com.b3dgs.lionengine.Config 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;
}
}
}
use of com.b3dgs.lionengine.Config in project lionengine by b3dgs.
the class LoopFrameSkipping method hasSync.
/**
* Check if screen has sync locked.
*
* @param screen The screen reference.
* @return <code>true</code> if sync enabled, <code>false</code> else.
*/
private static boolean hasSync(Screen screen) {
final Config config = screen.getConfig();
final Resolution output = config.getOutput();
return config.isWindowed() && output.getRate() > 0;
}
Aggregations