Esempio n. 1
0
    // Polls for new depth frame data
    public static bool PollDepthFrame(ref DepthBuffer depthImage, ref BodyIndexBuffer bodyIndexImage, ref int minDepth, ref int maxDepth)
    {
        bool bNewFrame = false;

        IntPtr imagePtr    = IntPtr.Zero;
        Int64  liFrameTime = 0;

        int hr = PollImageFrameData(FrameSource.TypeDepth | FrameSource.TypeBodyIndex);

        if (hr == 0)
        {
            hr = GetNewDepthFrameData(ref imagePtr, ref liFrameTime, ref minDepth, ref maxDepth);

            if (hr == 0)
            {
                depthImage = (DepthBuffer)Marshal.PtrToStructure(imagePtr, typeof(DepthBuffer));

                hr = GetNewBodyIndexFrameData(ref imagePtr, ref liFrameTime);

                if (hr == 0)
                {
                    bodyIndexImage = (BodyIndexBuffer)Marshal.PtrToStructure(imagePtr, typeof(BodyIndexBuffer));
                    bNewFrame      = true;
                }
            }
        }

        return(bNewFrame);
    }
    // Polls for new depth frame data
    public static bool PollDepthFrame(ref DepthBuffer depthImage, ref BodyIndexBuffer bodyIndexImage, ref int minDepth, ref int maxDepth)
    {
        bool bNewFrame = false;

        IntPtr imagePtr = IntPtr.Zero;
        Int64 liFrameTime = 0;

        int hr = PollImageFrameData(FrameSource.TypeDepth | FrameSource.TypeBodyIndex);
        if (hr == 0)
        {
            hr = GetNewDepthFrameData(ref imagePtr, ref liFrameTime, ref minDepth, ref maxDepth);

            if(hr == 0)
            {
                depthImage = (DepthBuffer)Marshal.PtrToStructure(imagePtr, typeof(DepthBuffer));

                hr = GetNewBodyIndexFrameData(ref imagePtr, ref liFrameTime);

                if(hr == 0)
                {
                    bodyIndexImage = (BodyIndexBuffer)Marshal.PtrToStructure(imagePtr, typeof(BodyIndexBuffer));
                    bNewFrame = true;
                }
            }
        }

        return bNewFrame;
    }