minecraft-src/com/mojang/blaze3d/buffers/GpuFence.java
2025-07-04 03:45:38 +03:00

34 lines
818 B
Java

package com.mojang.blaze3d.buffers;
import com.mojang.blaze3d.DontObfuscate;
import com.mojang.blaze3d.opengl.GlStateManager;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
@Environment(EnvType.CLIENT)
@DontObfuscate
public class GpuFence implements AutoCloseable {
private long handle = GlStateManager._glFenceSync(37143, 0);
public void close() {
if (this.handle != 0L) {
GlStateManager._glDeleteSync(this.handle);
this.handle = 0L;
}
}
public boolean awaitCompletion(long l) {
if (this.handle == 0L) {
return true;
} else {
int i = GlStateManager._glClientWaitSync(this.handle, 0, l);
if (i == 37147) {
return false;
} else if (i == 37149) {
throw new IllegalStateException("Failed to complete gpu fence");
} else {
return true;
}
}
}
}