93 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			93 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			C#
		
	
	
	
| 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 SourceFontFile;
 | |
| 
 | |
| 
 | |
|         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(SourceFontFile, 90, 9, GlyphRenderMode.SDFAA, 256, 256, AtlasPopulationMode.Dynamic);
 | |
|                     break;
 | |
|                 case BenchmarkType.TMP_SDF__MOBILE_SSD:
 | |
|                     fontAsset = TMP_FontAsset.CreateFontAsset(SourceFontFile, 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(SourceFontFile, 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(SourceFontFile, 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 = SourceFontFile.material;
 | |
|                             textMesh.font = SourceFontFile;
 | |
|                             textMesh.anchor = TextAnchor.MiddleCenter;
 | |
|                             textMesh.fontSize = 130;
 | |
| 
 | |
|                             textMesh.color = new Color32(255, 255, 0, 255);
 | |
|                             textMesh.text = "@";
 | |
|                         }
 | |
|                         break;
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
| 
 | |
|     }
 | |
| }
 |