public override byte[] GetColorImagePixels() { var tempColor = new byte[KinectSettings.COLOR_PIXEL_COUNT * 4]; lock (rgbByteBuffer) { Array.Copy(rgbByteBuffer, tempColor, tempColor.Length); } ColorReadyEvent.Reset(); Task.Run(() => CopyNextColor()); return(tempColor); }
private void CopyNextColor() { var frame = _xef.LoadColorFrame(nextColorFrameNum); if (nextColorFrameNum < _xef.NumOfColorFrames - 1) { nextColorFrameNum++; } else { nextColorFrameNum = 0; } lock (rgbByteBuffer) { Array.Copy(frame, rgbByteBuffer, frame.Length); } ColorReadyEvent.Set(); }