A game about forced loneliness, made by TACStudios
at master 73 lines 2.8 kB view raw
1using System; 2using System.Linq; 3using UnityEditor; 4using UnityEngine; 5using UnityEngine.Playables; 6using UnityEngine.Timeline; 7 8namespace UnityEditor.Timeline 9{ 10 static class FrameRateDisplayUtility 11 { 12 private static string[] s_FrameRateLabels; 13 public static bool GetStandardFromFrameRate(double frameRate, out StandardFrameRates standard) 14 { 15 FrameRate frameRateObj = TimeUtility.GetClosestFrameRate(RoundFrameRate(frameRate)); 16 return TimeUtility.ToStandardFrameRate(frameRateObj, out standard); 17 } 18 19 public static double RoundFrameRate(double frameRate) 20 { 21 double trunc = Math.Truncate(frameRate * (1 / TimeUtility.kFrameRateRounding)) * TimeUtility.kFrameRateRounding; 22 return Math.Min(Math.Max(TimelineAsset.EditorSettings.kMinFrameRate, trunc), 23 TimelineAsset.EditorSettings.kMaxFrameRate); 24 } 25 26 public static string[] GetDefaultFrameRatesLabels(StandardFrameRates option) 27 { 28 string[] labels; 29 if (s_FrameRateLabels == null || !s_FrameRateLabels.Any()) 30 { 31 var frameRates = (StandardFrameRates[])Enum.GetValues(typeof(StandardFrameRates)); 32 labels = Array.ConvertAll(frameRates, GetLabelForStandardFrameRate); 33 s_FrameRateLabels = labels; 34 } 35 else 36 { 37 labels = s_FrameRateLabels; 38 } 39 40 if (!Enum.IsDefined(typeof(StandardFrameRates), option)) 41 { 42 Array.Resize(ref labels, (int)option + 1); 43 labels[(int)option] = GetLabelForStandardFrameRate(option); 44 } 45 return labels; 46 } 47 48 static string GetLabelForStandardFrameRate(StandardFrameRates option) 49 { 50 switch (option) 51 { 52 case StandardFrameRates.Fps23_97: 53 return L10n.Tr("Film NTSC: 23.97 fps"); 54 case StandardFrameRates.Fps24: 55 return L10n.Tr("Film: 24 fps"); 56 case StandardFrameRates.Fps25: 57 return L10n.Tr("PAL: 25 fps"); 58 case StandardFrameRates.Fps29_97: 59 return L10n.Tr("NTSC: 29.97 fps"); 60 case StandardFrameRates.Fps30: 61 return L10n.Tr("HD: 30 fps"); 62 case StandardFrameRates.Fps50: 63 return L10n.Tr("Interlaced PAL: 50 fps"); 64 case StandardFrameRates.Fps59_94: 65 return L10n.Tr("Interlaced NTSC: 59.94 fps"); 66 case StandardFrameRates.Fps60: 67 return L10n.Tr("Game: 60 fps"); 68 default: 69 return L10n.Tr("Custom"); 70 } 71 } 72 } 73}