minor performance improvements

This commit is contained in:
Bixilon 2022-10-05 18:22:27 +02:00
parent abd79f3485
commit 5a695919e4
No known key found for this signature in database
GPG Key ID: 5CAD791931B09AC4
3 changed files with 14 additions and 7 deletions

View File

@ -38,6 +38,7 @@ import de.bixilon.minosoft.gui.rendering.gui.mesh.GUIVertexOptions
import de.bixilon.minosoft.gui.rendering.system.window.CursorShapes
import de.bixilon.minosoft.gui.rendering.util.vec.vec2.Vec2iUtil.EMPTY
import de.bixilon.minosoft.gui.rendering.util.vec.vec4.Vec4iUtil.offset
import de.bixilon.minosoft.util.KUtil.length
open class TextElement(
guiRenderer: GUIRenderer,
@ -49,7 +50,7 @@ open class TextElement(
parent: Element? = null,
scale: Float = 1.0f,
shadow: Boolean = true,
) : Element(guiRenderer, text.toString().length * 6 * GUIMesh.GUIMeshStruct.FLOATS_PER_VERTEX), Labeled {
) : Element(guiRenderer, text.length * 6 * GUIMesh.GUIMeshStruct.FLOATS_PER_VERTEX), Labeled {
private var activeElement: TextComponent? = null
lateinit var renderInfo: TextRenderInfo
private set

View File

@ -26,24 +26,22 @@ class SingleWorldMesh(renderWindow: RenderWindow, initialCacheSize: Int, onDeman
fun addVertex(position: FloatArray, uv: Vec2, texture: AbstractTexture, tintColor: Int, light: Int) {
data.ensureSize(WorldMeshStruct.FLOATS_PER_VERTEX)
val transformedUV = texture.renderData.transformUV(uv)
val transformedUV = texture.renderData.transformUV(uv).array
data.add(position[0])
data.add(position[1])
data.add(position[2])
data.add(transformedUV.x)
data.add(transformedUV.y)
data.addAll(transformedUV)
data.add(texture.renderData.shaderTextureId.buffer())
data.add((tintColor or (light shl 24)).buffer())
}
fun addVertex(x: Float, y: Float, z: Float, uv: Vec2, texture: AbstractTexture, shaderTextureId: Float, tintLight: Float) {
data.ensureSize(WorldMeshStruct.FLOATS_PER_VERTEX)
val transformedUV = texture.renderData.transformUV(uv)
val transformedUV = texture.renderData.transformUV(uv.array)
data.add(x)
data.add(y)
data.add(z)
data.add(transformedUV.x)
data.add(transformedUV.y)
data.addAll(transformedUV)
data.add(shaderTextureId)
data.add(tintLight)
}

View File

@ -153,6 +153,7 @@ object KUtil {
return ChatComponent.of(
when (this) {
is ChatComponent -> return this
is CharSequence -> this.toString()
null -> TextComponent("null").color(ChatColors.DARK_RED)
is TextFormattable -> this.toText()
is Boolean -> TextComponent(this.toString()).color(this.decide(ChatColors.GREEN, ChatColors.RED))
@ -306,4 +307,11 @@ object KUtil {
Platform.exit()
}
}
val Any.length: Int
get() {
if (this is ChatComponent) return this.length
if (this is CharSequence) return this.length
return toString().length
}
}