protected virtual void Dispose(bool disposing)
        {
            if (disposing)
            {
                if (_baseFrameReference != null)
                {
                    _baseFrameReference.Dispose();
                    _baseFrameReference = null;
                }

                if (_overlayDataReference != null)
                {
                    _overlayDataReference.FusionOverlayData.Unloaded -= HandleOverlayDataUnloaded;
                    _overlayDataReference.Dispose();
                    _overlayDataReference = null;
                }
            }
        }
		protected virtual void Dispose(bool disposing)
		{
			if (disposing)
			{
				if (_baseFrameReference != null)
				{
					_baseFrameReference.Dispose();
					_baseFrameReference = null;
				}

				if (_overlayDataReference != null)
				{
					_overlayDataReference.FusionOverlayData.Unloaded -= HandleOverlayDataUnloaded;
					_overlayDataReference.Dispose();
					_overlayDataReference = null;
				}
			}
		}
 internal FusionOverlayFrameData(IFrameReference baseFrame, IFusionOverlayDataReference overlayData)
 {
     _baseFrameReference   = baseFrame;
     _overlayDataReference = overlayData;
     _overlayDataReference.FusionOverlayData.Unloaded += HandleOverlayDataUnloaded;
 }
		internal FusionOverlayFrameData(IFrameReference baseFrame, IFusionOverlayDataReference overlayData)
		{
			_baseFrameReference = baseFrame;
			_overlayDataReference = overlayData;
			_overlayDataReference.FusionOverlayData.Unloaded += HandleOverlayDataUnloaded;
		}