A game about forced loneliness, made by TACStudios
at master 30 lines 1.5 kB view raw
1#if !TIMELINE_FRAMEACCURATE 2using System; 3 4namespace UnityEngine.Timeline 5{ 6 internal readonly struct FrameRate : IEquatable<FrameRate> 7 { 8 public readonly double rate; 9 10 public static readonly FrameRate k_23_976Fps = new FrameRate(23.976023976024); 11 public static readonly FrameRate k_24Fps = new FrameRate(24); 12 public static readonly FrameRate k_25Fps = new FrameRate(25); 13 public static readonly FrameRate k_30Fps = new FrameRate(30); 14 public static readonly FrameRate k_29_97Fps = new FrameRate(29.97002997003); 15 public static readonly FrameRate k_50Fps = new FrameRate(50); 16 public static readonly FrameRate k_59_94Fps = new FrameRate(59.9400599400599); 17 public static readonly FrameRate k_60Fps = new FrameRate(60); 18 19 FrameRate(double framerate) { rate = framerate; } 20 public bool IsValid() => rate > TimeUtility.kTimeEpsilon; 21 public bool Equals(FrameRate other) => Math.Abs(rate - other.rate) < TimeUtility.kFrameRateEpsilon; 22 public override bool Equals(object obj) => obj is FrameRate other && Equals(other); 23 public override int GetHashCode() => rate.GetHashCode(); 24 public static bool operator ==(FrameRate a, FrameRate b) => a.Equals(b); 25 public static bool operator !=(FrameRate a, FrameRate b) => !a.Equals(b); 26 27 public static FrameRate DoubleToFrameRate(double rate) => new FrameRate(Math.Ceiling(rate) - rate < TimeUtility.kFrameRateEpsilon ? rate : Math.Ceiling(rate) * 1000.0 / 1001.0); 28 } 29} 30#endif