A game about forced loneliness, made by TACStudios
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}