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.
73 lines
2.7 KiB
73 lines
2.7 KiB
using System; |
|
using System.Linq; |
|
using UnityEditor; |
|
using UnityEngine; |
|
using UnityEngine.Playables; |
|
using UnityEngine.Timeline; |
|
|
|
namespace UnityEditor.Timeline |
|
{ |
|
static class FrameRateDisplayUtility |
|
{ |
|
private static string[] s_FrameRateLabels; |
|
public static bool GetStandardFromFrameRate(double frameRate, out StandardFrameRates standard) |
|
{ |
|
FrameRate frameRateObj = TimeUtility.GetClosestFrameRate(RoundFrameRate(frameRate)); |
|
return TimeUtility.ToStandardFrameRate(frameRateObj, out standard); |
|
} |
|
|
|
public static double RoundFrameRate(double frameRate) |
|
{ |
|
double trunc = Math.Truncate(frameRate * (1 / TimeUtility.kFrameRateRounding)) * TimeUtility.kFrameRateRounding; |
|
return Math.Min(Math.Max(TimelineAsset.EditorSettings.kMinFrameRate, trunc), |
|
TimelineAsset.EditorSettings.kMaxFrameRate); |
|
} |
|
|
|
public static string[] GetDefaultFrameRatesLabels(StandardFrameRates option) |
|
{ |
|
string[] labels; |
|
if (s_FrameRateLabels == null || !s_FrameRateLabels.Any()) |
|
{ |
|
var frameRates = (StandardFrameRates[])Enum.GetValues(typeof(StandardFrameRates)); |
|
labels = Array.ConvertAll(frameRates, GetLabelForStandardFrameRate); |
|
s_FrameRateLabels = labels; |
|
} |
|
else |
|
{ |
|
labels = s_FrameRateLabels; |
|
} |
|
|
|
if (!Enum.IsDefined(typeof(StandardFrameRates), option)) |
|
{ |
|
Array.Resize(ref labels, (int)option + 1); |
|
labels[(int)option] = GetLabelForStandardFrameRate(option); |
|
} |
|
return labels; |
|
} |
|
|
|
static string GetLabelForStandardFrameRate(StandardFrameRates option) |
|
{ |
|
switch (option) |
|
{ |
|
case StandardFrameRates.Fps23_97: |
|
return L10n.Tr("Film NTSC: 23.97 fps"); |
|
case StandardFrameRates.Fps24: |
|
return L10n.Tr("Film: 24 fps"); |
|
case StandardFrameRates.Fps25: |
|
return L10n.Tr("PAL: 25 fps"); |
|
case StandardFrameRates.Fps29_97: |
|
return L10n.Tr("NTSC: 29.97 fps"); |
|
case StandardFrameRates.Fps30: |
|
return L10n.Tr("HD: 30 fps"); |
|
case StandardFrameRates.Fps50: |
|
return L10n.Tr("Interlaced PAL: 50 fps"); |
|
case StandardFrameRates.Fps59_94: |
|
return L10n.Tr("Interlaced NTSC: 59.94 fps"); |
|
case StandardFrameRates.Fps60: |
|
return L10n.Tr("Game: 60 fps"); |
|
default: |
|
return L10n.Tr("Custom"); |
|
} |
|
} |
|
} |
|
}
|
|
|