Implemented frame delta with time steps

This commit is contained in:
collinsmith 2020-10-06 10:28:26 -07:00
parent ac5ec5f0d8
commit 3803abb02b
3 changed files with 15 additions and 3 deletions

View File

@ -35,6 +35,7 @@ public class BIK {
final int width;
final int height;
final float fps;
final float delta;
final int flags;
final int numTracks;
final BinkAudio[] tracks;
@ -96,7 +97,8 @@ public class BIK {
}
fps = (float) fpsDividend / fpsDivisor;
log.trace("fps: {} fps", fps);
delta = 1 / fps;
log.trace("fps: {} fps ({}s)", fps, delta);
flags = in.read32();
if (log.traceEnabled()) log.tracef("flags: 0x%08x (%s)", flags, getFlagsString());

View File

@ -9,6 +9,8 @@ public class VideoPlayer implements Disposable {
private BIK bik;
private AudioDevice[] audio;
private float[][][] out;
private int frame;
private float time, nextFrame;
public VideoPlayer() {
@ -35,9 +37,12 @@ public class VideoPlayer implements Disposable {
}
int f = 0;
public void update(float delta) {
bik.decode(f++, audio, out[0]);
time += delta;
if (time > nextFrame) {
nextFrame += bik.delta;
bik.decode(frame++, audio, out[0]);
}
}
public void draw(Batch batch) {

View File

@ -10,6 +10,9 @@ import com.badlogic.gdx.backends.lwjgl.LwjglApplicationConfiguration;
import com.badlogic.gdx.files.FileHandle;
import com.badlogic.gdx.graphics.GL20;
import com.riiablo.logger.Level;
import com.riiablo.logger.LogManager;
public class VideoTool extends ApplicationAdapter {
private static final String TAG = "VideoTool";
@ -30,6 +33,8 @@ public class VideoTool extends ApplicationAdapter {
@Override
public void create() {
LogManager.setLevel("com.riiablo.video", Level.TRACE);
Gdx.gl.glClearColor(0.3f, 0.3f, 0.3f, 1.0f);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);