package ocelot.desktop.graphics.mesh import ocelot.desktop.color.Color import ocelot.desktop.geometry.Transform2D import org.lwjgl.opengl.GL11 import java.nio.ByteBuffer object MeshInstance2D extends VertexType { override val stride: Int = 104 override val attributes: Seq[Attribute] = Array( Attribute("inColor", 4, GL11.GL_FLOAT, normalized = false, stride, 0), Attribute("inTextColor", 4, GL11.GL_FLOAT, normalized = false, stride, 16), Attribute("inTransform0", 3, GL11.GL_FLOAT, normalized = false, stride, 32), Attribute("inTransform1", 3, GL11.GL_FLOAT, normalized = false, stride, 44), Attribute("inUVTransform0", 3, GL11.GL_FLOAT, normalized = false, stride, 56), Attribute("inUVTransform1", 3, GL11.GL_FLOAT, normalized = false, stride, 68), Attribute("inTextUVTransform0", 3, GL11.GL_FLOAT, normalized = false, stride, 80), Attribute("inTextUVTransform1", 3, GL11.GL_FLOAT, normalized = false, stride, 92), ) } case class MeshInstance2D(color: Color, textColor: Color, transform: Transform2D, uvTransform: Transform2D, textUvTransform: Transform2D) extends Vertex { override def stride: Int = MeshInstance2D.stride override def vertexType: VertexType = MeshInstance2D override def put(buf: ByteBuffer): Unit = { color.toRGBANorm.put(buf) textColor.toRGBANorm.put(buf) transform.put(buf) uvTransform.put(buf) textUvTransform.put(buf) } }