SimpleJavaEngine/src/main/java/speiger/src/coreengine/rendering/input/window/WindowCallback.java

31 lines
560 B
Java

package speiger.src.coreengine.rendering.input.window;
import java.util.function.LongFunction;
import org.lwjgl.system.Callback;
public class WindowCallback
{
Callback callback;
LongFunction<Callback> provider;
public WindowCallback(LongFunction<Callback> provider) {
this.provider = provider;
}
public void reload(long windowId) {
destroy();
load(windowId);
}
public void load(long windowId) {
callback = provider.apply(windowId);
}
public void destroy() {
if(callback == null) return;
callback.free();
callback = null;
}
}