public void DrawText(MeshGenerationContextUtils.TextParams textParams, TextHandle handle, float pixelsPerPoint) { bool flag = textParams.font == null; if (!flag) { bool flag2 = this.m_CurrentElement.panel.contextType == ContextType.Editor; if (flag2) { textParams.fontColor *= textParams.playmodeTintColor; } float scaling = TextNative.ComputeTextScaling(this.m_CurrentElement.worldTransform, pixelsPerPoint); TextNativeSettings textNativeSettings = MeshGenerationContextUtils.TextParams.GetTextNativeSettings(textParams, scaling); using (NativeArray <TextVertex> vertices = TextNative.GetVertices(textNativeSettings)) { List <RenderChainTextEntry> arg_91_0 = this.m_CurrentElement.renderChainData.textEntries; int textEntryIndex = this.m_TextEntryIndex; this.m_TextEntryIndex = textEntryIndex + 1; RenderChainTextEntry renderChainTextEntry = arg_91_0[textEntryIndex]; Vector2 offset = TextNative.GetOffset(textNativeSettings, textParams.rect); MeshBuilder.UpdateText(vertices, offset, this.m_CurrentElement.renderChainData.verticesSpace, this.m_XFormClipPages, this.m_IDsFlags, this.m_OpacityPagesSettingsIndex, this.m_MeshDataVerts.Slice(renderChainTextEntry.firstVertex, renderChainTextEntry.vertexCount)); renderChainTextEntry.command.state.font = textParams.font.material.mainTexture; } } }
public void Begin(VisualElement ve, UIRenderDevice device) { Debug.Assert(ve.renderChainData.usesLegacyText && ve.renderChainData.textEntries.Count > 0); this.m_CurrentElement = ve; this.m_TextEntryIndex = 0; Alloc allocVerts = ve.renderChainData.data.allocVerts; NativeSlice <Vertex> slice = ve.renderChainData.data.allocPage.vertices.cpuData.Slice((int)allocVerts.start, (int)allocVerts.size); device.Update(ve.renderChainData.data, ve.renderChainData.data.allocVerts.size, out this.m_MeshDataVerts); RenderChainTextEntry renderChainTextEntry = ve.renderChainData.textEntries[0]; bool flag = ve.renderChainData.textEntries.Count > 1 || renderChainTextEntry.vertexCount != this.m_MeshDataVerts.Length; if (flag) { this.m_MeshDataVerts.CopyFrom(slice); } int firstVertex = renderChainTextEntry.firstVertex; this.m_XFormClipPages = slice[firstVertex].xformClipPages; this.m_IDsFlags = slice[firstVertex].idsFlags; this.m_OpacityPagesSettingsIndex = slice[firstVertex].opacityPageSVGSettingIndex; }