コード例 #1
0
        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;
                }
            }
        }
コード例 #2
0
        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;
        }