/// <summary> Updates the texture. </summary> private void UpdateTexture() { if (!DidUpdateThisFrame || !IsPlaying) { return; } FrameRawData frame = m_NativeCameraProxy.GetFrame(); if (frame.data == null) { NRDebugger.Error("[CameraModelView] Get camera raw data faild..."); return; } FrameCount++; OnRawDataUpdate(frame); }
/// <summary> Queue frame. </summary> /// <param name="textureptr"> The textureptr.</param> /// <param name="size"> The size.</param> /// <param name="timestamp"> The timestamp.</param> protected void QueueFrame(IntPtr textureptr, int size, UInt64 timestamp) { if (!m_IsPlaying) { NRDebugger.Error("camera was not stopped properly, it still sending data."); return; } FrameRawData frame = FramePool.Get <FrameRawData>(); bool result = FrameRawData.MakeSafe(m_TexturePtr, size, timestamp, ref frame); if (result) { m_CameraFrames.Enqueue(frame); } else { FramePool.Put <FrameRawData>(frame); } }