mirror of
https://gitlab.bixilon.de/bixilon/minosoft.git
synced 2025-09-17 11:24:56 -04:00
make current render order legacy
This commit is contained in:
parent
d4a701583e
commit
af561c1232
@ -18,10 +18,10 @@ import de.bixilon.minosoft.data.text.formatting.color.RGBColor
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.RenderOrder
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.texture.shader.ShaderTexture
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.texture.texture.Texture
|
||||
import de.bixilon.minosoft.gui.rendering.system.opengl.OpenGLRenderSystem
|
||||
import de.bixilon.minosoft.gui.rendering.util.mesh.MeshOrder
|
||||
|
||||
open class DummyGUIVertexConsumer : GUIVertexConsumer {
|
||||
override val order: RenderOrder get() = OpenGLRenderSystem.QUAD_ORDER
|
||||
override val order: RenderOrder get() = MeshOrder.QUAD
|
||||
var char = 0
|
||||
|
||||
override fun addCache(cache: GUIMeshCache) {
|
||||
|
@ -21,6 +21,7 @@ import de.bixilon.minosoft.gui.rendering.models.block.state.baked.Shades
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.MeshUtil.buffer
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.buffer.vertex.PrimitiveTypes
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.texture.texture.Texture
|
||||
import de.bixilon.minosoft.gui.rendering.util.mesh.MeshOrder
|
||||
import de.bixilon.minosoft.test.IT.OBJENESIS
|
||||
import de.bixilon.minosoft.util.KUtil.toResourceLocation
|
||||
import de.bixilon.minosoft.util.collections.floats.FragmentedArrayFloatList
|
||||
@ -39,7 +40,7 @@ class BakedFaceTest {
|
||||
private fun singleMesh(): SingleChunkMesh {
|
||||
val mesh = OBJENESIS.newInstance(SingleChunkMesh::class.java)
|
||||
mesh::quadType.forceSet(PrimitiveTypes.QUAD)
|
||||
mesh::order.forceSet(SingleChunkMesh.QUAD_ORDER)
|
||||
mesh::order.forceSet(MeshOrder.QUAD)
|
||||
|
||||
mesh.data = FragmentedArrayFloatList(1000) // TODO: kutil 1.24
|
||||
|
||||
|
@ -33,7 +33,7 @@ import de.bixilon.minosoft.gui.rendering.system.dummy.buffer.uniform.DummyFloatU
|
||||
import de.bixilon.minosoft.gui.rendering.system.dummy.buffer.uniform.DummyIntUniformBuffer
|
||||
import de.bixilon.minosoft.gui.rendering.system.dummy.shader.DummyNativeShader
|
||||
import de.bixilon.minosoft.gui.rendering.system.dummy.texture.DummyTextureManager
|
||||
import de.bixilon.minosoft.gui.rendering.system.opengl.OpenGLRenderSystem
|
||||
import de.bixilon.minosoft.gui.rendering.util.mesh.MeshOrder
|
||||
import de.bixilon.minosoft.gui.rendering.util.mesh.MeshStruct
|
||||
import java.nio.ByteBuffer
|
||||
import java.nio.FloatBuffer
|
||||
@ -80,7 +80,8 @@ class DummyRenderSystem(
|
||||
override var clearColor: RGBColor = Colors.TRANSPARENT
|
||||
override var quadType: PrimitiveTypes = PrimitiveTypes.QUAD
|
||||
|
||||
override var quadOrder: RenderOrder = if (quadType == PrimitiveTypes.QUAD) OpenGLRenderSystem.QUAD_ORDER else OpenGLRenderSystem.TRIANGLE_ORDER
|
||||
override var quadOrder: RenderOrder = if (quadType == PrimitiveTypes.QUAD) MeshOrder.QUAD else MeshOrder.TRIANGLE
|
||||
override var legacyQuadOrder: RenderOrder = if (quadType == PrimitiveTypes.QUAD) MeshOrder.LEGACY_QUAD else MeshOrder.LEGACY_TRIANGLE
|
||||
|
||||
override fun readPixels(start: Vec2i, end: Vec2i, type: PixelTypes): ByteBuffer {
|
||||
TODO("Not yet implemented")
|
||||
|
@ -17,8 +17,6 @@ import de.bixilon.kotlinglm.vec2.Vec2
|
||||
import de.bixilon.kotlinglm.vec3.Vec3
|
||||
import de.bixilon.minosoft.gui.rendering.RenderContext
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.MeshUtil.buffer
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.RenderOrder
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.buffer.vertex.PrimitiveTypes
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.texture.texture.Texture
|
||||
import de.bixilon.minosoft.gui.rendering.util.mesh.Mesh
|
||||
import de.bixilon.minosoft.gui.rendering.util.mesh.MeshStruct
|
||||
@ -26,7 +24,7 @@ import de.bixilon.minosoft.gui.rendering.util.mesh.MeshStruct
|
||||
class SingleChunkMesh(context: RenderContext, initialCacheSize: Int, onDemand: Boolean = false) : Mesh(context, WorldMeshStruct, initialCacheSize = initialCacheSize, onDemand = onDemand), Comparable<SingleChunkMesh> {
|
||||
var distance: Float = 0.0f // Used for sorting
|
||||
|
||||
override val order = if (quadType == PrimitiveTypes.QUAD) QUAD_ORDER else TRIANGLE_ORDER
|
||||
override val order = context.system.quadOrder
|
||||
|
||||
fun addVertex(position: FloatArray, uv: Vec2, texture: Texture, tintColor: Int, light: Int) {
|
||||
data.ensureSize(WorldMeshStruct.FLOATS_PER_VERTEX)
|
||||
@ -61,21 +59,4 @@ class SingleChunkMesh(context: RenderContext, initialCacheSize: Int, onDemand: B
|
||||
) {
|
||||
companion object : MeshStruct(WorldMeshStruct::class)
|
||||
}
|
||||
|
||||
companion object {
|
||||
val TRIANGLE_ORDER = RenderOrder(intArrayOf(
|
||||
0, 0,
|
||||
3, 3,
|
||||
2, 2,
|
||||
2, 2,
|
||||
1, 1,
|
||||
0, 0,
|
||||
))
|
||||
val QUAD_ORDER = RenderOrder(intArrayOf(
|
||||
0, 0,
|
||||
3, 3,
|
||||
2, 2,
|
||||
1, 1,
|
||||
))
|
||||
}
|
||||
}
|
||||
|
@ -65,7 +65,7 @@ abstract class Element(val guiRenderer: GUIRenderer, initialCacheSize: Int = 100
|
||||
}
|
||||
|
||||
@Deprecated("Warning: Should not be directly accessed!")
|
||||
open val cache = GUIMeshCache(guiRenderer.halfSize, context.system.quadOrder, context, initialCacheSize)
|
||||
open val cache = GUIMeshCache(guiRenderer.halfSize, context.system.legacyQuadOrder, context, initialCacheSize)
|
||||
|
||||
private var previousMaxSize = Vec2.EMPTY
|
||||
|
||||
|
@ -102,7 +102,9 @@ interface RenderSystem {
|
||||
var clearColor: RGBColor
|
||||
|
||||
var quadType: PrimitiveTypes
|
||||
|
||||
var quadOrder: RenderOrder
|
||||
@Deprecated("legacy") var legacyQuadOrder: RenderOrder
|
||||
|
||||
fun readPixels(start: Vec2i, end: Vec2i, type: PixelTypes): ByteBuffer
|
||||
|
||||
|
@ -34,6 +34,7 @@ import de.bixilon.minosoft.gui.rendering.system.opengl.buffer.uniform.IntOpenGLU
|
||||
import de.bixilon.minosoft.gui.rendering.system.opengl.buffer.vertex.FloatOpenGLVertexBuffer
|
||||
import de.bixilon.minosoft.gui.rendering.system.opengl.texture.OpenGLTextureManager
|
||||
import de.bixilon.minosoft.gui.rendering.system.opengl.vendor.*
|
||||
import de.bixilon.minosoft.gui.rendering.util.mesh.MeshOrder
|
||||
import de.bixilon.minosoft.gui.rendering.util.mesh.MeshStruct
|
||||
import de.bixilon.minosoft.modding.event.listener.CallbackEventListener.Companion.listen
|
||||
import de.bixilon.minosoft.util.logging.Log
|
||||
@ -69,7 +70,8 @@ class OpenGLRenderSystem(
|
||||
} else {
|
||||
PrimitiveTypes.TRIANGLE
|
||||
}
|
||||
override var quadOrder: RenderOrder = if (quadType == PrimitiveTypes.QUAD) QUAD_ORDER else TRIANGLE_ORDER
|
||||
override var quadOrder: RenderOrder = if (quadType == PrimitiveTypes.QUAD) MeshOrder.QUAD else MeshOrder.TRIANGLE
|
||||
override var legacyQuadOrder: RenderOrder = if (quadType == PrimitiveTypes.QUAD) MeshOrder.LEGACY_QUAD else MeshOrder.LEGACY_TRIANGLE
|
||||
var boundVao = -1
|
||||
var boundBuffer = -1
|
||||
var uniformBufferBindingIndex = 0
|
||||
@ -328,21 +330,6 @@ class OpenGLRenderSystem(
|
||||
}
|
||||
|
||||
companion object {
|
||||
val TRIANGLE_ORDER = RenderOrder(intArrayOf(
|
||||
// TOOD: they are all rotated 90° wrong, fix this for triangle and quad order
|
||||
0, 1,
|
||||
3, 2,
|
||||
2, 3,
|
||||
2, 3,
|
||||
1, 0,
|
||||
0, 1,
|
||||
))
|
||||
val QUAD_ORDER = RenderOrder(intArrayOf(
|
||||
0, 1,
|
||||
3, 2,
|
||||
2, 3,
|
||||
1, 0,
|
||||
))
|
||||
|
||||
private val RenderingCapabilities.gl: Int
|
||||
get() {
|
||||
|
@ -31,7 +31,7 @@ abstract class Mesh(
|
||||
data: FragmentedArrayFloatList? = null,
|
||||
val onDemand: Boolean = false,
|
||||
) : AbstractVertexConsumer {
|
||||
override val order = context.system.quadOrder
|
||||
override val order = context.system.legacyQuadOrder
|
||||
private var _data: FragmentedArrayFloatList? = data ?: if (onDemand) null else FragmentedArrayFloatList(initialCacheSize)
|
||||
var data: FragmentedArrayFloatList
|
||||
get() {
|
||||
|
@ -0,0 +1,53 @@
|
||||
/*
|
||||
* Minosoft
|
||||
* Copyright (C) 2020-2023 Moritz Zwerger
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* This software is not affiliated with Mojang AB, the original developer of Minecraft.
|
||||
*/
|
||||
|
||||
package de.bixilon.minosoft.gui.rendering.util.mesh
|
||||
|
||||
import de.bixilon.minosoft.gui.rendering.system.base.RenderOrder
|
||||
|
||||
// TODO: Replace mesh order with index buffer
|
||||
object MeshOrder {
|
||||
@Deprecated("legacy")
|
||||
val LEGACY_QUAD = RenderOrder(intArrayOf(
|
||||
0, 1,
|
||||
3, 2,
|
||||
2, 3,
|
||||
1, 0,
|
||||
))
|
||||
|
||||
@Deprecated("legacy")
|
||||
val LEGACY_TRIANGLE = RenderOrder(intArrayOf(
|
||||
// TOOD: they are all rotated 90° wrong, fix this for triangle and quad order
|
||||
0, 1,
|
||||
3, 2,
|
||||
2, 3,
|
||||
2, 3,
|
||||
1, 0,
|
||||
0, 1,
|
||||
))
|
||||
|
||||
val TRIANGLE = RenderOrder(intArrayOf(
|
||||
0, 0,
|
||||
3, 3,
|
||||
2, 2,
|
||||
2, 2,
|
||||
1, 1,
|
||||
0, 0,
|
||||
))
|
||||
val QUAD = RenderOrder(intArrayOf(
|
||||
0, 0,
|
||||
3, 3,
|
||||
2, 2,
|
||||
1, 1,
|
||||
))
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user