/// <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);
        }
Beispiel #2
0
        /// <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);
            }
        }