internal static void MakeText(TextCore.MeshInfo meshInfo, Vector2 offset, AllocMeshData meshAlloc) { int quadCount = meshInfo.vertexCount / 4; if (quadCount > k_MaxTextQuadCount) { Debug.LogError("MakeText: text is too long and generates too many vertices"); quadCount = k_MaxTextQuadCount; } var mesh = meshAlloc.Allocate((uint)(quadCount * 4), (uint)(quadCount * 6)); for (int q = 0, v = 0, i = 0; q < quadCount; ++q, v += 4, i += 6) { mesh.SetNextVertex(ConvertTextVertexToUIRVertex(meshInfo, v + 0, offset)); mesh.SetNextVertex(ConvertTextVertexToUIRVertex(meshInfo, v + 1, offset)); mesh.SetNextVertex(ConvertTextVertexToUIRVertex(meshInfo, v + 2, offset)); mesh.SetNextVertex(ConvertTextVertexToUIRVertex(meshInfo, v + 3, offset)); mesh.SetNextIndex((UInt16)(v + 0)); mesh.SetNextIndex((UInt16)(v + 2)); mesh.SetNextIndex((UInt16)(v + 1)); mesh.SetNextIndex((UInt16)(v + 2)); mesh.SetNextIndex((UInt16)(v + 0)); mesh.SetNextIndex((UInt16)(v + 3)); } }
private static Vertex ConvertTextVertexToUIRVertex(TextCore.MeshInfo info, int index, Vector2 offset) { return(new Vertex { position = new Vector3(info.vertices[index].x + offset.x, info.vertices[index].y + offset.y, UIRUtility.k_MeshPosZ), uv = info.uvs0[index], //textParms = info.uvs2[index], tint = info.colors32[index], idsFlags = new Color32(0, 0, 0, (byte)VertexFlags.IsText) }); }
internal static void MakeText(TextCore.MeshInfo meshInfo, Vector2 offset, AllocMeshData meshAlloc) { int vertexCount = LimitTextVertices(meshInfo.vertexCount); int quadCount = vertexCount / 4; var mesh = meshAlloc.Allocate((uint)(quadCount * 4), (uint)(quadCount * 6)); for (int q = 0, v = 0, i = 0; q < quadCount; ++q, v += 4, i += 6) { mesh.SetNextVertex(ConvertTextVertexToUIRVertex(meshInfo, v + 0, offset)); mesh.SetNextVertex(ConvertTextVertexToUIRVertex(meshInfo, v + 1, offset)); mesh.SetNextVertex(ConvertTextVertexToUIRVertex(meshInfo, v + 2, offset)); mesh.SetNextVertex(ConvertTextVertexToUIRVertex(meshInfo, v + 3, offset)); mesh.SetNextIndex((UInt16)(v + 0)); mesh.SetNextIndex((UInt16)(v + 1)); mesh.SetNextIndex((UInt16)(v + 2)); mesh.SetNextIndex((UInt16)(v + 2)); mesh.SetNextIndex((UInt16)(v + 3)); mesh.SetNextIndex((UInt16)(v + 0)); } }