You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
92 lines
3.6 KiB
92 lines
3.6 KiB
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; |
|
} |
|
} |
|
} |
|
|
|
} |
|
}
|
|
|