Search in sources :

Example 81 with Config

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()));
}
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.jupiter.api.Test)

Example 82 with 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 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);
        }
    }
}
Also used : Config(com.b3dgs.lionengine.Config) Resolution(com.b3dgs.lionengine.Resolution)

Example 83 with Config

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);
        }
    }
}
Also used : Config(com.b3dgs.lionengine.Config) Resolution(com.b3dgs.lionengine.Resolution)

Example 84 with Config

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();
}
Also used : Config(com.b3dgs.lionengine.Config) Test(org.junit.jupiter.api.Test)

Example 85 with Config

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();
}
Also used : Config(com.b3dgs.lionengine.Config) FilterBlur(com.b3dgs.lionengine.graphic.filter.FilterBlur) Resolution(com.b3dgs.lionengine.Resolution) Test(org.junit.jupiter.api.Test)

Aggregations

Config (com.b3dgs.lionengine.Config)89 Resolution (com.b3dgs.lionengine.Resolution)75 Screen (com.b3dgs.lionengine.graphic.Screen)47 ScreenMock (com.b3dgs.lionengine.graphic.ScreenMock)45 Test (org.junit.jupiter.api.Test)42 Test (org.junit.Test)38 FactoryGraphicMock (com.b3dgs.lionengine.graphic.FactoryGraphicMock)2 Semaphore (java.util.concurrent.Semaphore)2 AtomicReference (java.util.concurrent.atomic.AtomicReference)2 Context (com.b3dgs.lionengine.Context)1 LionEngineException (com.b3dgs.lionengine.LionEngineException)1 FilterBilinear (com.b3dgs.lionengine.core.filter.FilterBilinear)1 FilterBlur (com.b3dgs.lionengine.core.filter.FilterBlur)1 FilterHq2x (com.b3dgs.lionengine.core.filter.FilterHq2x)1 FilterHq3x (com.b3dgs.lionengine.core.filter.FilterHq3x)1 ImageBuffer (com.b3dgs.lionengine.graphic.ImageBuffer)1 Rasterbar (com.b3dgs.lionengine.graphic.engine.Rasterbar)1 Sequencer (com.b3dgs.lionengine.graphic.engine.Sequencer)1 SourceResolutionProvider (com.b3dgs.lionengine.graphic.engine.SourceResolutionProvider)1 FilterBilinear (com.b3dgs.lionengine.graphic.filter.FilterBilinear)1