diff --git a/src/main/java/com/jozufozu/flywheel/backend/Backend.java b/src/main/java/com/jozufozu/flywheel/backend/Backend.java index 85f332c16..84f2b753f 100644 --- a/src/main/java/com/jozufozu/flywheel/backend/Backend.java +++ b/src/main/java/com/jozufozu/flywheel/backend/Backend.java @@ -133,7 +133,7 @@ public class Backend { compat = new GlCompat(capabilities); - instancedArrays = compat.vertexArrayObjectsSupported() && compat.drawInstancedSupported() && compat.instancedArraysSupported(); + instancedArrays = compat.instancedArraysSupported(); enabled = FlwConfig.get() .enabled() && !OptifineHandler.usingShaders(); diff --git a/src/main/java/com/jozufozu/flywheel/backend/gl/GlVertexArray.java b/src/main/java/com/jozufozu/flywheel/backend/gl/GlVertexArray.java index 0802d231f..9053539e6 100644 --- a/src/main/java/com/jozufozu/flywheel/backend/gl/GlVertexArray.java +++ b/src/main/java/com/jozufozu/flywheel/backend/gl/GlVertexArray.java @@ -1,21 +1,21 @@ package com.jozufozu.flywheel.backend.gl; -import com.jozufozu.flywheel.backend.Backend; +import com.mojang.blaze3d.platform.GlStateManager; public class GlVertexArray extends GlObject { public GlVertexArray() { - setHandle(Backend.getInstance().compat.vao.genVertexArrays()); + setHandle(GlStateManager._glGenVertexArrays()); } public void bind() { - Backend.getInstance().compat.vao.bindVertexArray(handle()); + GlStateManager._glBindVertexArray(handle()); } public static void unbind() { - Backend.getInstance().compat.vao.bindVertexArray(0); + GlStateManager._glBindVertexArray(0); } protected void deleteInternal(int handle) { - Backend.getInstance().compat.vao.deleteVertexArrays(handle); + GlStateManager._glDeleteVertexArrays(handle); } } diff --git a/src/main/java/com/jozufozu/flywheel/backend/gl/versioned/GlCompat.java b/src/main/java/com/jozufozu/flywheel/backend/gl/versioned/GlCompat.java index b86a31489..704d85bd7 100644 --- a/src/main/java/com/jozufozu/flywheel/backend/gl/versioned/GlCompat.java +++ b/src/main/java/com/jozufozu/flywheel/backend/gl/versioned/GlCompat.java @@ -9,13 +9,6 @@ import org.lwjgl.opengl.GLCapabilities; import org.lwjgl.system.MemoryStack; import org.lwjgl.system.MemoryUtil; -import com.jozufozu.flywheel.backend.gl.versioned.framebuffer.Blit; -import com.jozufozu.flywheel.backend.gl.versioned.framebuffer.Framebuffer; -import com.jozufozu.flywheel.backend.gl.versioned.instancing.BaseVertex; -import com.jozufozu.flywheel.backend.gl.versioned.instancing.DrawInstanced; -import com.jozufozu.flywheel.backend.gl.versioned.instancing.InstancedArrays; -import com.jozufozu.flywheel.backend.gl.versioned.instancing.VertexArrayObject; - /** * An instance of this class stores information about what OpenGL features are available. *
@@ -25,50 +18,20 @@ import com.jozufozu.flywheel.backend.gl.versioned.instancing.VertexArrayObject; public class GlCompat { public final MapBufferRange mapBufferRange; - public final VertexArrayObject vao; public final InstancedArrays instancedArrays; - public final DrawInstanced drawInstanced; - public final Blit blit; - public final Framebuffer fbo; public final BufferStorage bufferStorage; - public final RGPixelFormat pixelFormat; - public final BaseVertex baseVertex; - public GlCompat(GLCapabilities caps) { mapBufferRange = getLatest(MapBufferRange.class, caps); - vao = getLatest(VertexArrayObject.class, caps); instancedArrays = getLatest(InstancedArrays.class, caps); - drawInstanced = getLatest(DrawInstanced.class, caps); - baseVertex = getLatest(BaseVertex.class, caps); - blit = getLatest(Blit.class, caps); - fbo = getLatest(Framebuffer.class, caps); bufferStorage = getLatest(BufferStorage.class, caps); - - pixelFormat = getLatest(RGPixelFormat.class, caps); - } - - public boolean vertexArrayObjectsSupported() { - return vao != VertexArrayObject.UNSUPPORTED; } public boolean instancedArraysSupported() { return instancedArrays != InstancedArrays.UNSUPPORTED; } - public boolean drawInstancedSupported() { - return drawInstanced != DrawInstanced.UNSUPPORTED; - } - - public boolean fbosSupported() { - return fbo != Framebuffer.UNSUPPORTED; - } - - public boolean blitSupported() { - return blit != Blit.UNSUPPORTED; - } - public boolean bufferStorageSupported() { return bufferStorage != BufferStorage.UNSUPPORTED; } diff --git a/src/main/java/com/jozufozu/flywheel/backend/gl/versioned/instancing/InstancedArrays.java b/src/main/java/com/jozufozu/flywheel/backend/gl/versioned/InstancedArrays.java similarity index 88% rename from src/main/java/com/jozufozu/flywheel/backend/gl/versioned/instancing/InstancedArrays.java rename to src/main/java/com/jozufozu/flywheel/backend/gl/versioned/InstancedArrays.java index 2c681d41d..b2c221d81 100644 --- a/src/main/java/com/jozufozu/flywheel/backend/gl/versioned/instancing/InstancedArrays.java +++ b/src/main/java/com/jozufozu/flywheel/backend/gl/versioned/InstancedArrays.java @@ -1,11 +1,9 @@ -package com.jozufozu.flywheel.backend.gl.versioned.instancing; +package com.jozufozu.flywheel.backend.gl.versioned; import org.lwjgl.opengl.ARBInstancedArrays; import org.lwjgl.opengl.GL33; import org.lwjgl.opengl.GLCapabilities; -import com.jozufozu.flywheel.backend.gl.versioned.GlVersioned; - public enum InstancedArrays implements GlVersioned { GL33_INSTANCED_ARRAYS { @Override diff --git a/src/main/java/com/jozufozu/flywheel/backend/gl/versioned/RGPixelFormat.java b/src/main/java/com/jozufozu/flywheel/backend/gl/versioned/RGPixelFormat.java deleted file mode 100644 index 339289894..000000000 --- a/src/main/java/com/jozufozu/flywheel/backend/gl/versioned/RGPixelFormat.java +++ /dev/null @@ -1,77 +0,0 @@ -package com.jozufozu.flywheel.backend.gl.versioned; - -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL30; -import org.lwjgl.opengl.GLCapabilities; - -public enum RGPixelFormat implements GlVersioned { - GL30_RG { - @Override - public boolean supported(GLCapabilities caps) { - return caps.OpenGL30; - } - - @Override - public int internalFormat() { - return GL30.GL_RG8; - } - - @Override - public int format() { - return GL30.GL_RG; - } - - @Override - public int byteCount() { - return 2; - } - }, - GL11_RGB { - @Override - public boolean supported(GLCapabilities caps) { - return caps.OpenGL11; - } - - @Override - public int internalFormat() { - return GL11.GL_RGB8; - } - - @Override - public int format() { - return GL11.GL_RGB; - } - - @Override - public int byteCount() { - return 3; - } - }, - UNSUPPORTED { - @Override - public boolean supported(GLCapabilities caps) { - return true; - } - - @Override - public int internalFormat() { - throw new UnsupportedOperationException(); - } - - @Override - public int format() { - throw new UnsupportedOperationException(); - } - - @Override - public int byteCount() { - throw new UnsupportedOperationException(); - } - }; - - public abstract int internalFormat(); - - public abstract int format(); - - public abstract int byteCount(); -} diff --git a/src/main/java/com/jozufozu/flywheel/backend/gl/versioned/framebuffer/Blit.java b/src/main/java/com/jozufozu/flywheel/backend/gl/versioned/framebuffer/Blit.java deleted file mode 100644 index fdf5473d1..000000000 --- a/src/main/java/com/jozufozu/flywheel/backend/gl/versioned/framebuffer/Blit.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.jozufozu.flywheel.backend.gl.versioned.framebuffer; - -import org.lwjgl.opengl.EXTFramebufferBlit; -import org.lwjgl.opengl.GL30; -import org.lwjgl.opengl.GLCapabilities; - -import com.jozufozu.flywheel.backend.gl.versioned.GlVersioned; - -public enum Blit implements GlVersioned { - CORE { - @Override - public boolean supported(GLCapabilities caps) { - return caps.OpenGL30; - } - - @Override - public void blitFramebuffer(int srcX0, int srcY0, int srcX1, int srcY1, int dstX0, int dstY0, int dstX1, int dstY1, int mask, int filter) { - GL30.glBlitFramebuffer(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter); - } - }, - EXT { - @Override - public boolean supported(GLCapabilities caps) { - return caps.GL_EXT_framebuffer_blit; - } - - @Override - public void blitFramebuffer(int srcX0, int srcY0, int srcX1, int srcY1, int dstX0, int dstY0, int dstX1, int dstY1, int mask, int filter) { - EXTFramebufferBlit.glBlitFramebufferEXT(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter); - } - }, - UNSUPPORTED { - @Override - public boolean supported(GLCapabilities caps) { - return true; - } - - @Override - public void blitFramebuffer(int srcX0, int srcY0, int srcX1, int srcY1, int dstX0, int dstY0, int dstX1, int dstY1, int mask, int filter) { - throw new UnsupportedOperationException("Framebuffer blitting not supported."); - } - }; - - public abstract void blitFramebuffer(int srcX0, int srcY0, int srcX1, int srcY1, int dstX0, int dstY0, int dstX1, int dstY1, int mask, int filter); -} diff --git a/src/main/java/com/jozufozu/flywheel/backend/gl/versioned/framebuffer/Framebuffer.java b/src/main/java/com/jozufozu/flywheel/backend/gl/versioned/framebuffer/Framebuffer.java deleted file mode 100644 index a0e2b3e1b..000000000 --- a/src/main/java/com/jozufozu/flywheel/backend/gl/versioned/framebuffer/Framebuffer.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.jozufozu.flywheel.backend.gl.versioned.framebuffer; - -import org.lwjgl.opengl.ARBFramebufferObject; -import org.lwjgl.opengl.EXTFramebufferObject; -import org.lwjgl.opengl.GL30C; -import org.lwjgl.opengl.GLCapabilities; - -import com.jozufozu.flywheel.backend.gl.versioned.GlVersioned; - -public enum Framebuffer implements GlVersioned { - CORE { - @Override - public boolean supported(GLCapabilities caps) { - return caps.OpenGL30; - } - - @Override - public void bindFramebuffer(int target, int framebuffer) { - GL30C.glBindFramebuffer(target, framebuffer); - } - }, - ARB { - @Override - public boolean supported(GLCapabilities caps) { - return caps.GL_ARB_framebuffer_object; - } - - @Override - public void bindFramebuffer(int target, int framebuffer) { - ARBFramebufferObject.glBindFramebuffer(target, framebuffer); - } - }, - EXT { - @Override - public boolean supported(GLCapabilities caps) { - return caps.GL_EXT_framebuffer_object; - } - - @Override - public void bindFramebuffer(int target, int framebuffer) { - EXTFramebufferObject.glBindFramebufferEXT(target, framebuffer); - } - }, - UNSUPPORTED { - @Override - public boolean supported(GLCapabilities caps) { - return true; - } - - @Override - public void bindFramebuffer(int target, int framebuffer) { - throw new UnsupportedOperationException("Framebuffers not supported"); - } - }; - - public abstract void bindFramebuffer(int target, int framebuffer); -} diff --git a/src/main/java/com/jozufozu/flywheel/backend/gl/versioned/instancing/BaseVertex.java b/src/main/java/com/jozufozu/flywheel/backend/gl/versioned/instancing/BaseVertex.java deleted file mode 100644 index 1d9b89fbd..000000000 --- a/src/main/java/com/jozufozu/flywheel/backend/gl/versioned/instancing/BaseVertex.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.jozufozu.flywheel.backend.gl.versioned.instancing; - -import org.lwjgl.opengl.ARBDrawElementsBaseVertex; -import org.lwjgl.opengl.GL32; -import org.lwjgl.opengl.GLCapabilities; - -import com.jozufozu.flywheel.backend.gl.GlNumericType; -import com.jozufozu.flywheel.backend.gl.GlPrimitive; -import com.jozufozu.flywheel.backend.gl.versioned.GlVersioned; - -public enum BaseVertex implements GlVersioned { - GL31_CORE { - @Override - public boolean supported(GLCapabilities caps) { - return caps.OpenGL31; - } - - @Override - public void drawElementsInstancedBaseVertex(GlPrimitive mode, int elementCount, GlNumericType type, long indices, int instanceCount, int baseVertex) { - GL32.glDrawElementsInstancedBaseVertex(mode.glEnum, elementCount, type.getGlEnum(), indices, instanceCount, baseVertex); - } - - @Override - public void drawElementsBaseVertex(GlPrimitive mode, int elementCount, GlNumericType type, long indices, int baseVertex) { - GL32.glDrawElementsBaseVertex(mode.glEnum, elementCount, type.getGlEnum(), indices, baseVertex); - } - }, - ARB { - @Override - public boolean supported(GLCapabilities caps) { - return caps.GL_ARB_draw_elements_base_vertex; - } - - @Override - public void drawElementsInstancedBaseVertex(GlPrimitive mode, int elementCount, GlNumericType type, long indices, int instanceCount, int baseVertex) { - ARBDrawElementsBaseVertex.glDrawElementsInstancedBaseVertex(mode.glEnum, elementCount, type.getGlEnum(), indices, instanceCount, baseVertex); - } - - @Override - public void drawElementsBaseVertex(GlPrimitive mode, int elementCount, GlNumericType type, long indices, int baseVertex) { - ARBDrawElementsBaseVertex.glDrawElementsBaseVertex(mode.glEnum, elementCount, type.getGlEnum(), indices, baseVertex); - } - }, - UNSUPPORTED { - @Override - public boolean supported(GLCapabilities caps) { - return true; - } - }; - - - public void drawElementsInstancedBaseVertex(GlPrimitive mode, int elementCount, GlNumericType type, long indices, int instanceCount, int baseVertex) { - throw new UnsupportedOperationException(); - } - - - public void drawElementsBaseVertex(GlPrimitive mode, int elementCount, GlNumericType type, long indices, int baseVertex) { - throw new UnsupportedOperationException(); - } -} diff --git a/src/main/java/com/jozufozu/flywheel/backend/gl/versioned/instancing/DrawInstanced.java b/src/main/java/com/jozufozu/flywheel/backend/gl/versioned/instancing/DrawInstanced.java deleted file mode 100644 index fd73c66b8..000000000 --- a/src/main/java/com/jozufozu/flywheel/backend/gl/versioned/instancing/DrawInstanced.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.jozufozu.flywheel.backend.gl.versioned.instancing; - -import org.lwjgl.opengl.ARBDrawInstanced; -import org.lwjgl.opengl.EXTDrawInstanced; -import org.lwjgl.opengl.GL31; -import org.lwjgl.opengl.GLCapabilities; - -import com.jozufozu.flywheel.backend.gl.GlNumericType; -import com.jozufozu.flywheel.backend.gl.GlPrimitive; -import com.jozufozu.flywheel.backend.gl.versioned.GlVersioned; - -public enum DrawInstanced implements GlVersioned { - GL31_CORE { - @Override - public boolean supported(GLCapabilities caps) { - return caps.OpenGL31; - } - - @Override - public void drawArraysInstanced(GlPrimitive mode, int first, int count, int primcount) { - GL31.glDrawArraysInstanced(mode.glEnum, first, count, primcount); - } - - @Override - public void drawElementsInstanced(GlPrimitive mode, int elementCount, GlNumericType type, long indices, int primcount) { - GL31.glDrawElementsInstanced(mode.glEnum, elementCount, type.getGlEnum(), indices, primcount); - } - }, - ARB { - @Override - public boolean supported(GLCapabilities caps) { - return caps.GL_ARB_draw_instanced; - } - - @Override - public void drawArraysInstanced(GlPrimitive mode, int first, int count, int primcount) { - ARBDrawInstanced.glDrawArraysInstancedARB(mode.glEnum, first, count, primcount); - } - - @Override - public void drawElementsInstanced(GlPrimitive mode, int elementCount, GlNumericType type, long indices, int primcount) { - ARBDrawInstanced.glDrawElementsInstancedARB(mode.glEnum, elementCount, type.getGlEnum(), indices, primcount); - } - }, - EXT { - @Override - public boolean supported(GLCapabilities caps) { - return caps.GL_EXT_draw_instanced; - } - - @Override - public void drawArraysInstanced(GlPrimitive mode, int first, int count, int primcount) { - EXTDrawInstanced.glDrawArraysInstancedEXT(mode.glEnum, first, count, primcount); - } - - @Override - public void drawElementsInstanced(GlPrimitive mode, int elementCount, GlNumericType type, long indices, int primcount) { - EXTDrawInstanced.glDrawElementsInstancedEXT(mode.glEnum, elementCount, type.getGlEnum(), indices, primcount); - } - }, - UNSUPPORTED { - @Override - public boolean supported(GLCapabilities caps) { - return true; - } - }; - - - public void drawArraysInstanced(GlPrimitive mode, int first, int count, int primcount) { - throw new UnsupportedOperationException(); - } - - public void drawElementsInstanced(GlPrimitive mode, int elementCount, GlNumericType type, long indices, int primcount) { - throw new UnsupportedOperationException(); - } -} diff --git a/src/main/java/com/jozufozu/flywheel/backend/gl/versioned/instancing/VertexArrayObject.java b/src/main/java/com/jozufozu/flywheel/backend/gl/versioned/instancing/VertexArrayObject.java deleted file mode 100644 index 4a2d13c11..000000000 --- a/src/main/java/com/jozufozu/flywheel/backend/gl/versioned/instancing/VertexArrayObject.java +++ /dev/null @@ -1,79 +0,0 @@ -package com.jozufozu.flywheel.backend.gl.versioned.instancing; - -import org.lwjgl.opengl.ARBVertexArrayObject; -import org.lwjgl.opengl.GL30; -import org.lwjgl.opengl.GLCapabilities; - -import com.jozufozu.flywheel.backend.gl.versioned.GlVersioned; - -public enum VertexArrayObject implements GlVersioned { - GL30_VAO { - @Override - public boolean supported(GLCapabilities caps) { - return caps.OpenGL30; - } - - @Override - public int genVertexArrays() { - return GL30.glGenVertexArrays(); - } - - @Override - public void bindVertexArray(int array) { - GL30.glBindVertexArray(array); - } - - @Override - public void deleteVertexArrays(int array) { - GL30.glDeleteVertexArrays(array); - } - }, - ARB_VAO { - @Override - public boolean supported(GLCapabilities caps) { - return caps.GL_ARB_vertex_array_object; - } - - @Override - public int genVertexArrays() { - return ARBVertexArrayObject.glGenVertexArrays(); - } - - @Override - public void bindVertexArray(int array) { - ARBVertexArrayObject.glBindVertexArray(array); - } - - @Override - public void deleteVertexArrays(int array) { - ARBVertexArrayObject.glDeleteVertexArrays(array); - } - }, - UNSUPPORTED { - @Override - public boolean supported(GLCapabilities caps) { - return true; - } - - @Override - public int genVertexArrays() { - throw new UnsupportedOperationException(); - } - - @Override - public void bindVertexArray(int array) { - throw new UnsupportedOperationException(); - } - - @Override - public void deleteVertexArrays(int array) { - throw new UnsupportedOperationException(); - } - }; - - public abstract int genVertexArrays(); - - public abstract void bindVertexArray(int array); - - public abstract void deleteVertexArrays(int array); -} diff --git a/src/main/java/com/jozufozu/flywheel/backend/instancing/InstanceWorld.java b/src/main/java/com/jozufozu/flywheel/backend/instancing/InstanceWorld.java index 95ac1a3aa..cf6042576 100644 --- a/src/main/java/com/jozufozu/flywheel/backend/instancing/InstanceWorld.java +++ b/src/main/java/com/jozufozu/flywheel/backend/instancing/InstanceWorld.java @@ -3,8 +3,8 @@ package com.jozufozu.flywheel.backend.instancing; import com.jozufozu.flywheel.backend.instancing.entity.EntityInstanceManager; import com.jozufozu.flywheel.backend.instancing.tile.TileInstanceManager; import com.jozufozu.flywheel.backend.material.Engine; -import com.jozufozu.flywheel.backend.material.instancing.InstancingEngine; import com.jozufozu.flywheel.backend.material.batching.BatchingEngine; +import com.jozufozu.flywheel.backend.material.instancing.InstancingEngine; import com.jozufozu.flywheel.core.Contexts; import com.jozufozu.flywheel.core.shader.WorldProgram; import com.jozufozu.flywheel.event.BeginFrameEvent; @@ -28,7 +28,7 @@ public class InstanceWorld { protected final InstanceManager tileEntityInstanceManager; public InstanceWorld() { - + // TODO: finish impl if (false) { engine = new BatchingEngine(); diff --git a/src/main/java/com/jozufozu/flywheel/backend/model/BufferedModel.java b/src/main/java/com/jozufozu/flywheel/backend/model/BufferedModel.java index c5f552abf..7dfb48aef 100644 --- a/src/main/java/com/jozufozu/flywheel/backend/model/BufferedModel.java +++ b/src/main/java/com/jozufozu/flywheel/backend/model/BufferedModel.java @@ -2,7 +2,8 @@ package com.jozufozu.flywheel.backend.model; import static org.lwjgl.opengl.GL11.glDrawArrays; -import com.jozufozu.flywheel.backend.Backend; +import org.lwjgl.opengl.GL31; + import com.jozufozu.flywheel.backend.gl.GlPrimitive; import com.jozufozu.flywheel.backend.gl.attrib.VertexFormat; import com.jozufozu.flywheel.backend.gl.buffer.GlBuffer; @@ -74,7 +75,7 @@ public class BufferedModel implements IBufferedModel { public void drawInstances(int instanceCount) { if (!valid()) return; - Backend.getInstance().compat.drawInstanced.drawArraysInstanced(primitiveMode, 0, getVertexCount(), instanceCount); + GL31.glDrawArraysInstanced(primitiveMode.glEnum, 0, getVertexCount(), instanceCount); } public void delete() { diff --git a/src/main/java/com/jozufozu/flywheel/backend/model/IndexedModel.java b/src/main/java/com/jozufozu/flywheel/backend/model/IndexedModel.java index d5d7ba974..678a9f468 100644 --- a/src/main/java/com/jozufozu/flywheel/backend/model/IndexedModel.java +++ b/src/main/java/com/jozufozu/flywheel/backend/model/IndexedModel.java @@ -1,8 +1,8 @@ package com.jozufozu.flywheel.backend.model; import org.lwjgl.opengl.GL20; +import org.lwjgl.opengl.GL31; -import com.jozufozu.flywheel.backend.Backend; import com.jozufozu.flywheel.backend.gl.GlPrimitive; import com.jozufozu.flywheel.core.model.IModel; @@ -43,6 +43,6 @@ public class IndexedModel extends BufferedModel { public void drawInstances(int instanceCount) { if (!valid()) return; - Backend.getInstance().compat.drawInstanced.drawElementsInstanced(primitiveMode, ebo.elementCount, ebo.eboIndexType, 0, instanceCount); + GL31.glDrawElementsInstanced(primitiveMode.glEnum, ebo.elementCount, ebo.eboIndexType.getGlEnum(), 0, instanceCount); } } diff --git a/src/main/java/com/jozufozu/flywheel/backend/model/ModelPool.java b/src/main/java/com/jozufozu/flywheel/backend/model/ModelPool.java index 8f74f8658..3ad3bdba3 100644 --- a/src/main/java/com/jozufozu/flywheel/backend/model/ModelPool.java +++ b/src/main/java/com/jozufozu/flywheel/backend/model/ModelPool.java @@ -3,7 +3,8 @@ package com.jozufozu.flywheel.backend.model; import java.util.ArrayList; import java.util.List; -import com.jozufozu.flywheel.backend.Backend; +import org.lwjgl.opengl.GL32; + import com.jozufozu.flywheel.backend.gl.GlPrimitive; import com.jozufozu.flywheel.backend.gl.attrib.VertexFormat; import com.jozufozu.flywheel.backend.gl.buffer.GlBuffer; @@ -195,7 +196,7 @@ public class ModelPool implements ModelAllocator { @Override public void drawCall() { - Backend.getInstance().compat.baseVertex.drawElementsBaseVertex(GlPrimitive.TRIANGLES, ebo.elementCount, ebo.eboIndexType, 0, first); + GL32.glDrawElementsBaseVertex(GlPrimitive.TRIANGLES.glEnum, ebo.elementCount, ebo.eboIndexType.getGlEnum(), 0, first); } @Override @@ -206,7 +207,7 @@ public class ModelPool implements ModelAllocator { //Backend.log.info(StringUtil.args("drawElementsInstancedBaseVertex", GlPrimitive.TRIANGLES, ebo.elementCount, ebo.eboIndexType, 0, instanceCount, first)); - Backend.getInstance().compat.baseVertex.drawElementsInstancedBaseVertex(GlPrimitive.TRIANGLES, ebo.elementCount, ebo.eboIndexType, 0, instanceCount, first); + GL32.glDrawElementsInstancedBaseVertex(GlPrimitive.TRIANGLES.glEnum, ebo.elementCount, ebo.eboIndexType.getGlEnum(), 0, instanceCount, first); } @Override diff --git a/src/main/java/com/jozufozu/flywheel/light/GPULightVolume.java b/src/main/java/com/jozufozu/flywheel/light/GPULightVolume.java index 5dc44ceca..80ca9292d 100644 --- a/src/main/java/com/jozufozu/flywheel/light/GPULightVolume.java +++ b/src/main/java/com/jozufozu/flywheel/light/GPULightVolume.java @@ -23,10 +23,10 @@ import static org.lwjgl.opengl.GL13.GL_TEXTURE4; import static org.lwjgl.opengl.GL13.glActiveTexture; import static org.lwjgl.opengl.GL14.GL_MIRRORED_REPEAT; -import com.jozufozu.flywheel.backend.Backend; +import org.lwjgl.opengl.GL30; + import com.jozufozu.flywheel.backend.gl.GlTexture; import com.jozufozu.flywheel.backend.gl.GlTextureUnit; -import com.jozufozu.flywheel.backend.gl.versioned.RGPixelFormat; import net.minecraft.world.level.LightLayer; @@ -35,7 +35,6 @@ public class GPULightVolume extends LightVolume { protected final GridAlignedBB sampleVolume = new GridAlignedBB(); private final GlTexture glTexture; - private final RGPixelFormat pixelFormat; private final GlTextureUnit textureUnit = GlTextureUnit.T4; protected boolean bufferDirty; @@ -43,7 +42,6 @@ public class GPULightVolume extends LightVolume { super(sampleVolume); this.sampleVolume.assign(sampleVolume); - pixelFormat = Backend.getInstance().compat.pixelFormat; glTexture = new GlTexture(GL_TEXTURE_3D); // allocate space for the texture @@ -53,7 +51,7 @@ public class GPULightVolume extends LightVolume { int sizeX = box.sizeX(); int sizeY = box.sizeY(); int sizeZ = box.sizeZ(); - glTexImage3D(GL_TEXTURE_3D, 0, pixelFormat.internalFormat(), sizeX, sizeY, sizeZ, 0, pixelFormat.format(), GL_UNSIGNED_BYTE, 0); + glTexImage3D(GL_TEXTURE_3D, 0, GL30.GL_RG8, sizeX, sizeY, sizeZ, 0, GL30.GL_RG, GL_UNSIGNED_BYTE, 0); glTexture.unbind(); glActiveTexture(GL_TEXTURE0); @@ -94,7 +92,7 @@ public class GPULightVolume extends LightVolume { int sizeY = box.sizeY(); int sizeZ = box.sizeZ(); - glTexSubImage3D(GL_TEXTURE_3D, 0, 0, 0, 0, sizeX, sizeY, sizeZ, pixelFormat.format(), GL_UNSIGNED_BYTE, lightData); + glTexSubImage3D(GL_TEXTURE_3D, 0, 0, 0, 0, sizeX, sizeY, sizeZ, GL30.GL_RG, GL_UNSIGNED_BYTE, lightData); glPixelStorei(GL_UNPACK_ALIGNMENT, 4); // 4 is the default bufferDirty = false; @@ -150,7 +148,7 @@ public class GPULightVolume extends LightVolume { @Override protected int getStride() { - return Backend.getInstance().compat.pixelFormat.byteCount(); + return 2; } @Override