improve mesh performance

This commit is contained in:
Bixilon 2023-05-31 21:58:11 +02:00
parent e328f36c48
commit f043a9b620
No known key found for this signature in database
GPG Key ID: 5CAD791931B09AC4
5 changed files with 12 additions and 29 deletions

View File

@ -34,10 +34,8 @@ class FramebufferMesh(context: RenderContext) : Mesh(context, DefaultFramebuffer
}
private fun addVertex(position: Vec2, uv: Vec2) {
data.add(position.x)
data.add(position.y)
data.add(uv.x)
data.add(uv.y)
data.add(position.array)
data.add(uv.array)
}
data class DefaultFramebufferMeshStruct(

View File

@ -23,11 +23,8 @@ import de.bixilon.minosoft.gui.rendering.util.mesh.MeshStruct
open class WeatherOverlayMesh(context: RenderContext, primitiveType: PrimitiveTypes = context.renderSystem.preferredPrimitiveType) : Mesh(context, WeatherOverlayMeshStruct, primitiveType, initialCacheSize = 2 * 3 * WeatherOverlayMeshStruct.FLOATS_PER_VERTEX) {
fun addVertex(position: Vec3, uv: Vec2, offset: Float, offsetMultiplicator: Float, alphaMultiplicator: Float) {
data.add(position.x)
data.add(position.y)
data.add(position.z)
data.add(uv.x)
data.add(uv.y)
data.add(position.array)
data.add(uv.array)
data.add(offset)
data.add(offsetMultiplicator)
data.add(alphaMultiplicator)

View File

@ -25,11 +25,8 @@ class SkeletalMesh(context: RenderContext, initialCacheSize: Int) : Mesh(context
override fun addVertex(position: FloatArray, uv: Vec2, transform: Int, texture: ShaderTexture, flags: Int) {
val transformedUV = texture.transformUV(uv)
data.add(position[0])
data.add(position[1])
data.add(position[2])
data.add(transformedUV.x)
data.add(transformedUV.y)
data.add(position)
data.add(transformedUV.array)
data.add(transform.buffer())
data.add(texture.shaderId.buffer())
data.add(flags.buffer())
@ -37,11 +34,8 @@ class SkeletalMesh(context: RenderContext, initialCacheSize: Int) : Mesh(context
@Deprecated("Pretty rendering specific")
override fun addVertex(position: FloatArray, transformedUV: Vec2, transform: Float, textureShaderId: Float, flags: Float) {
data.add(position[0])
data.add(position[1])
data.add(position[2])
data.add(transformedUV.x)
data.add(transformedUV.y)
data.add(position)
data.add(transformedUV.array)
data.add(transform)
data.add(textureShaderId)
data.add(flags)

View File

@ -25,11 +25,8 @@ import de.bixilon.minosoft.gui.rendering.util.mesh.MeshStruct
open class PlanetMesh(context: RenderContext, primitiveType: PrimitiveTypes = context.renderSystem.preferredPrimitiveType) : Mesh(context, SunMeshStruct, primitiveType, initialCacheSize = 2 * 3 * SunMeshStruct.FLOATS_PER_VERTEX) {
fun addVertex(position: Vec3, texture: AbstractTexture, uv: Vec2) {
data.add(position.x)
data.add(position.y)
data.add(position.z)
data.add(uv.x)
data.add(uv.y)
data.add(position.array)
data.add(uv.array)
data.add(texture.renderData.shaderTextureId.buffer())
}

View File

@ -25,11 +25,8 @@ import de.bixilon.minosoft.gui.rendering.system.base.texture.texture.AbstractTex
open class SimpleTextureMesh(context: RenderContext, primitiveType: PrimitiveTypes = context.renderSystem.preferredPrimitiveType) : Mesh(context, SimpleTextureMeshStruct, primitiveType, initialCacheSize = 2 * 3 * SimpleTextureMeshStruct.FLOATS_PER_VERTEX) {
fun addVertex(position: Vec3, texture: AbstractTexture, uv: Vec2, tintColor: RGBColor?) {
data.add(position.x)
data.add(position.y)
data.add(position.z)
data.add(uv.x)
data.add(uv.y)
data.add(position.array)
data.add(uv.array)
data.add(texture.renderData.shaderTextureId.buffer())
data.add((tintColor?.rgba ?: Colors.WHITE).buffer())
}