| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 | using UnityEngine;using System.Collections;using UnityEngine.TextCore.LowLevel;namespace TMPro.Examples{    public class Benchmark03 : MonoBehaviour    {        public enum BenchmarkType { TMP_SDF_MOBILE = 0, TMP_SDF__MOBILE_SSD = 1, TMP_SDF = 2, TMP_BITMAP_MOBILE = 3, TEXTMESH_BITMAP = 4 }        public int NumberOfSamples = 100;        public BenchmarkType Benchmark;        public Font SourceFont;        void Awake()        {        }        void Start()        {            TMP_FontAsset fontAsset = null;            // Create Dynamic Font Asset for the given font file.            switch (Benchmark)            {                case BenchmarkType.TMP_SDF_MOBILE:                    fontAsset = TMP_FontAsset.CreateFontAsset(SourceFont, 90, 9, GlyphRenderMode.SDFAA, 256, 256, AtlasPopulationMode.Dynamic);                    break;                case BenchmarkType.TMP_SDF__MOBILE_SSD:                    fontAsset = TMP_FontAsset.CreateFontAsset(SourceFont, 90, 9, GlyphRenderMode.SDFAA, 256, 256, AtlasPopulationMode.Dynamic);                    fontAsset.material.shader = Shader.Find("TextMeshPro/Mobile/Distance Field SSD");                    break;                case BenchmarkType.TMP_SDF:                    fontAsset = TMP_FontAsset.CreateFontAsset(SourceFont, 90, 9, GlyphRenderMode.SDFAA, 256, 256, AtlasPopulationMode.Dynamic);                    fontAsset.material.shader = Shader.Find("TextMeshPro/Distance Field");                    break;                case BenchmarkType.TMP_BITMAP_MOBILE:                    fontAsset = TMP_FontAsset.CreateFontAsset(SourceFont, 90, 9, GlyphRenderMode.SMOOTH, 256, 256, AtlasPopulationMode.Dynamic);                    break;            }            for (int i = 0; i < NumberOfSamples; i++)            {                switch (Benchmark)                {                    case BenchmarkType.TMP_SDF_MOBILE:                    case BenchmarkType.TMP_SDF__MOBILE_SSD:                    case BenchmarkType.TMP_SDF:                    case BenchmarkType.TMP_BITMAP_MOBILE:                        {                            GameObject go = new GameObject();                            go.transform.position = new Vector3(0, 1.2f, 0);                            TextMeshPro textComponent = go.AddComponent<TextMeshPro>();                            textComponent.font = fontAsset;                            textComponent.fontSize = 128;                            textComponent.text = "@";                            textComponent.alignment = TextAlignmentOptions.Center;                            textComponent.color = new Color32(255, 255, 0, 255);                            if (Benchmark == BenchmarkType.TMP_BITMAP_MOBILE)                                textComponent.fontSize = 132;                        }                        break;                    case BenchmarkType.TEXTMESH_BITMAP:                        {                            GameObject go = new GameObject();                            go.transform.position = new Vector3(0, 1.2f, 0);                            TextMesh textMesh = go.AddComponent<TextMesh>();                            textMesh.GetComponent<Renderer>().sharedMaterial = SourceFont.material;                            textMesh.font = SourceFont;                            textMesh.anchor = TextAnchor.MiddleCenter;                            textMesh.fontSize = 130;                            textMesh.color = new Color32(255, 255, 0, 255);                            textMesh.text = "@";                        }                        break;                }            }        }    }}
 |