use of com.b3dgs.lionengine.Config in project lionengine by b3dgs.
the class LoopUnlockedTest 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(1000L, thread::join);
assertEquals(maxTick.get(), tick.get());
assertEquals(tick.get(), rendered.get());
assertTrue(computed.get() >= screen.getConfig().getOutput().getRate(), String.valueOf(computed.get()));
}
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 output = config.getOutput();
final boolean sync = config.isWindowed() && output.getRate() > 0;
notifyRateChanged(output.getRate());
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 = rate / ONE_SECOND_IN_NANO * (currentTime - lastTime);
frame.computeFrameRate(lastTime, currentTime);
} else {
frame.check();
UtilSequence.pause(Constant.DECADE);
}
}
}
use of com.b3dgs.lionengine.Config in project lionengine by b3dgs.
the class LoopLocked method start.
/*
* Loop
*/
@Override
public void start(Screen screen, Frame frame) {
Check.notNull(screen);
Check.notNull(frame);
final Config config = screen.getConfig();
final Resolution output = config.getOutput();
final boolean sync = config.isWindowed() && output.getRate() > 0;
if (maxFrameTimeNano < 0) {
notifyRateChanged(output.getRate());
}
isRunning = true;
while (isRunning) {
if (screen.isReady()) {
final long lastTime = System.nanoTime();
frame.update(Constant.EXTRP);
screen.preUpdate();
frame.render();
screen.update();
while (sync && System.nanoTime() - lastTime < maxFrameTimeNano) {
Thread.yield();
}
frame.computeFrameRate(lastTime, Math.max(lastTime + 1L, System.nanoTime()));
} else {
frame.check();
UtilSequence.pause(Constant.DECADE);
}
}
}
use of com.b3dgs.lionengine.Config in project lionengine by b3dgs.
the class LoaderTest method testIconFullScreen.
/**
* Test with an icon in full screen mode.
*/
@Test
void testIconFullScreen() {
final Config config = new Config(OUTPUT, 16, false, icon);
Loader.start(config, SequenceSingleMock.class).await();
}
use of com.b3dgs.lionengine.Config in project lionengine by b3dgs.
the class LoaderTest method testBlur.
/**
* Test with blur filter.
*/
@Test
void testBlur() {
final Resolution output = new Resolution(640, 480, 0);
final FilterBlur blur = new FilterBlur();
blur.setEdgeMode(FilterBlur.CLAMP_EDGES);
blur.setAlpha(true);
final Config config = new Config(output, 16, true);
Loader.start(config, SequenceFilterMock.class, blur).await();
blur.setEdgeMode(FilterBlur.WRAP_EDGES);
Loader.start(config, SequenceFilterMock.class, blur).await();
blur.setAlpha(false);
Loader.start(config, SequenceFilterMock.class, blur).await();
blur.setAlpha(true);
blur.setRadius(0.5f);
Loader.start(config, SequenceFilterMock.class, blur).await();
}
Aggregations