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; }
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(); }
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(); }
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); }