mirror of
https://gitlab.bixilon.de/bixilon/minosoft.git
synced 2025-09-15 18:34:56 -04:00
fix another FragmentedArrayFloatList batch adding bug + tests
This commit is contained in:
parent
b2f3e0fc4e
commit
406819f64e
@ -51,7 +51,7 @@ class BakedFace(
|
|||||||
|
|
||||||
|
|
||||||
val mesh = mesh.mesh(texture)
|
val mesh = mesh.mesh(texture)
|
||||||
mesh.data.ensureSize(SingleChunkMesh.WorldMeshStruct.FLOATS_PER_VERTEX * (mesh.order.size / 2))
|
mesh.data.ensureSize(SingleChunkMesh.WorldMeshStruct.FLOATS_PER_VERTEX * mesh.order.size)
|
||||||
|
|
||||||
var index = 0
|
var index = 0
|
||||||
val size = mesh.order.size
|
val size = mesh.order.size
|
||||||
|
@ -88,7 +88,7 @@ class FragmentedArrayFloatList(
|
|||||||
return buffer
|
return buffer
|
||||||
}
|
}
|
||||||
if (left == 0) return buffer
|
if (left == 0) return buffer
|
||||||
return grow(left)
|
return this.incomplete.firstOrNull() ?: grow(left)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun add(value1: Float, value2: Float) {
|
fun add(value1: Float, value2: Float) {
|
||||||
|
@ -64,9 +64,21 @@ class FragmentedFloatListTest : DirectFloatListTest() {
|
|||||||
}
|
}
|
||||||
assertEquals(list.size, 700)
|
assertEquals(list.size, 700)
|
||||||
val expected = FloatArray(700) { it.toFloat() }
|
val expected = FloatArray(700) { it.toFloat() }
|
||||||
println(expected.contentToString())
|
|
||||||
val array = list.toArray()
|
val array = list.toArray()
|
||||||
println(array.contentToString())
|
assertContentEquals(expected, array)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun `batch adding 7 floats and ensuring size`() {
|
||||||
|
val list = FragmentedArrayFloatList(100)
|
||||||
|
for (i in 0 until 100) {
|
||||||
|
list.ensureSize(21)
|
||||||
|
val offset = i * 7.0f
|
||||||
|
list.add(offset + 0, offset + 1, offset + 2, offset + 3, offset + 4, offset + 5, offset + 6)
|
||||||
|
}
|
||||||
|
assertEquals(list.size, 700)
|
||||||
|
val expected = FloatArray(700) { it.toFloat() }
|
||||||
|
val array = list.toArray()
|
||||||
assertContentEquals(expected, array)
|
assertContentEquals(expected, array)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -75,14 +87,11 @@ class FragmentedFloatListTest : DirectFloatListTest() {
|
|||||||
val list = FragmentedArrayFloatList(1)
|
val list = FragmentedArrayFloatList(1)
|
||||||
for (i in 0 until 100) {
|
for (i in 0 until 100) {
|
||||||
val offset = i * 7.0f
|
val offset = i * 7.0f
|
||||||
val a = floatArrayOf(offset + 0, offset + 1, offset + 2, offset + 3, offset + 4, offset + 5, offset + 6)
|
list += floatArrayOf(offset + 0, offset + 1, offset + 2, offset + 3, offset + 4, offset + 5, offset + 6)
|
||||||
list += a
|
|
||||||
}
|
}
|
||||||
assertEquals(list.size, 700)
|
assertEquals(list.size, 700)
|
||||||
val expected = FloatArray(700) { it.toFloat() }
|
val expected = FloatArray(700) { it.toFloat() }
|
||||||
println(expected.contentToString())
|
|
||||||
val array = list.toArray()
|
val array = list.toArray()
|
||||||
println(array.contentToString())
|
|
||||||
assertContentEquals(expected, array)
|
assertContentEquals(expected, array)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user