void Update()
    {
        // first get header only
        camerror = trcam_instance.GetVideoStreamFrameBuffer(pTrackedCamera, EVRTrackedCameraFrameType.Undistorted, (IntPtr)null, 0, ref pFrameHeader, (uint)Marshal.SizeOf(typeof(CameraVideoStreamFrameHeader_t)));
        if (camerror != EVRTrackedCameraError.None)
        {
//			Debug.LogError("GetVideoStreamFrameBuffer: EVRTrackedCameraError="+camerror);
            return;
        }
        //if frame hasn't changed don't copy buffer
        if (pFrameHeader.nFrameSequence == prevFrameSequence)
        {
            return;
        }
        // now get header and buffer
        camerror = trcam_instance.GetVideoStreamFrameBuffer(pTrackedCamera, EVRTrackedCameraFrameType.Undistorted, pBuffer, buffsize, ref pFrameHeader, (uint)Marshal.SizeOf(typeof(CameraVideoStreamFrameHeader_t)));
        if (camerror != EVRTrackedCameraError.None)
        {
            Debug.LogError("GetVideoStreamFrameBuffer: EVRTrackedCameraError=" + camerror);
            return;
        }
        prevFrameSequence = pFrameHeader.nFrameSequence;

        Marshal.Copy(pBuffer, buffer, 0, (int)buffsize);
        texture.LoadRawTextureData(buffer);
        texture.Apply();
        GetComponent <Renderer>().material.mainTexture = texture;
    }
Beispiel #2
0
    void Update()
    {
        screen.transform.localPosition = initPos + localOffset;
        screen.transform.localRotation = Quaternion.identity;
        screen.transform.RotateAround(screen.transform.position, screen.transform.forward, 180.0f + zOffsetAngle);
        screen.transform.RotateAround(screen.transform.parent.position, screen.transform.parent.right, xOffsetAngle);

        // first get header only
        camerror = trcam_instance.GetVideoStreamFrameBuffer(pTrackedCamera, EVRTrackedCameraFrameType.Undistorted, (IntPtr)null, 0, ref pFrameHeader, (uint)Marshal.SizeOf(typeof(CameraVideoStreamFrameHeader_t)));
        if (camerror != EVRTrackedCameraError.None)
        {
            //			Debug.LogError("GetVideoStreamFrameBuffer: EVRTrackedCameraError="+camerror);
            return;
        }
        //if frame hasn't changed don't copy buffer
        if (pFrameHeader.nFrameSequence == prevFrameSequence)
        {
            return;
        }
        // now get header and buffer
        camerror = trcam_instance.GetVideoStreamFrameBuffer(pTrackedCamera, EVRTrackedCameraFrameType.Undistorted, pBuffer, buffsize, ref pFrameHeader, (uint)Marshal.SizeOf(typeof(CameraVideoStreamFrameHeader_t)));
        if (camerror != EVRTrackedCameraError.None)
        {
            Debug.LogError("GetVideoStreamFrameBuffer: EVRTrackedCameraError=" + camerror);
            return;
        }
        prevFrameSequence = pFrameHeader.nFrameSequence;

        Marshal.Copy(pBuffer, buffer, 0, (int)buffsize);
        texture.LoadRawTextureData(buffer);
        texture.Apply();
    }
Beispiel #3
0
    void Update()
    {
        if (!m_texture)
        {
            return;
        }

        Valve.VR.EVRTrackedCameraError cameraError = m_camera.GetVideoStreamFrameBuffer(m_streamHandle, Valve.VR.EVRTrackedCameraFrameType.Undistorted, m_frameBuffer, m_frameBufferSize, ref m_frameHeader, m_frameHeaderSize);
        // Check for an error here Debug.Log("STREAM: error=" + cameraError);
        m_texture.LoadRawTextureData(m_frameBuffer, (int)m_frameBufferSize);
        m_texture.Apply();
    }
Beispiel #4
0
    private byte[] updateTrackedCamera()
    {
        if (camError)
        {
            if (texture != null)
            {
                return(texture.GetRawTextureData());
            }
            else
            {
                return(null);
            }
        }
        // first get header only
        camerror = trcam_instance.GetVideoStreamFrameBuffer(pTrackedCamera, EVRTrackedCameraFrameType.Undistorted, (IntPtr)null, 0, ref pFrameHeader, (uint)Marshal.SizeOf(typeof(CameraVideoStreamFrameHeader_t)));
        if (camerror != EVRTrackedCameraError.None)
        {
            Debug.LogError("GetVideoStreamFrameBuffer: EVRTrackedCameraError=" + camerror);
            return(null);
        }
        //if frame hasn't changed don't copy buffer
        if (pFrameHeader.nFrameSequence == prevFrameSequence)
        {
            return(null);
        }
        // now get header and buffer
        camerror = trcam_instance.GetVideoStreamFrameBuffer(pTrackedCamera, EVRTrackedCameraFrameType.Undistorted, pBuffer, buffsize, ref pFrameHeader, (uint)Marshal.SizeOf(typeof(CameraVideoStreamFrameHeader_t)));
        if (camerror != EVRTrackedCameraError.None)
        {
            Debug.LogError("GetVideoStreamFrameBuffer: EVRTrackedCameraError=" + camerror);
            return(null);
        }
        prevFrameSequence = pFrameHeader.nFrameSequence;

        //capture new frame buffer
        Marshal.Copy(pBuffer, buffer, 0, (int)buffsize);
        return(buffer);
    }