internal void FetchGradient() { if (!m_HasGradient.HasValue) { m_HasGradient = ClipboardParser.ParseCustom <GradientWrapper>(m_RawContents, out var wrapper); m_ValueGradient = wrapper.gradient; } }
internal void FetchAnimationCurve() { if (!m_HasAnimationCurve.HasValue) { m_HasAnimationCurve = ClipboardParser.ParseCustom <AnimationCurveWrapper>(m_RawContents, out var wrapper); m_ValueAnimationCurve = wrapper.curve; } }
internal void FetchObject() { if (!m_HasObject.HasValue) { m_HasObject = ClipboardParser.ParseCustom <ObjectWrapper>(m_RawContents, out var wrapper); m_ValueObject = wrapper.ToObject(); } }
internal bool FetchCustom <T>(out T res) where T : new() { var key = typeof(T); if (m_ValuesCustom.TryGetValue(key, out var cached)) { if (cached != null) { res = (T)cached; return(true); } res = default; return(false); } var ok = ClipboardParser.ParseCustom(m_RawContents, out res); m_ValuesCustom.Add(key, ok ? res : default); return(ok); }