WarpPI/core/src/main/java/it/cavallium/warppi/gui/DisplayRefreshManager.java

28 lines
682 B
Java
Raw Normal View History

2019-11-01 15:23:34 +01:00
package it.cavallium.warppi.gui;
2019-11-01 18:04:01 +01:00
import java.util.Arrays;
2019-11-01 15:23:34 +01:00
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.function.Consumer;
public class DisplayRefreshManager {
private final Consumer<Integer[]> refreshConsumer;
private volatile Integer[] size;
public DisplayRefreshManager(Consumer<Integer[]> refreshConsumer) {
this.refreshConsumer = refreshConsumer;
}
public void onTick() {
2019-11-01 18:04:01 +01:00
refreshConsumer.accept(size);
2019-11-01 15:23:34 +01:00
}
public void onResize(Integer[] newSize) {
2019-11-01 18:04:01 +01:00
var oldSize = size;
if (oldSize == null || !Arrays.equals(oldSize, newSize)) {
size = newSize;
2019-11-01 15:23:34 +01:00
refreshConsumer.accept(size);
}
}
}