Beispiel #1
0
    private Size initTrackedCamera()
    {
        uint width = 0, height = 0, index = 0;
        bool pHasCamera = false;

        trcam_instance = OpenVR.TrackedCamera;

        if (trcam_instance == null)
        {
            Debug.LogError("Error getting TrackedCamera");
            camError = true;
        }
        else
        {
            camerror = trcam_instance.HasCamera(index, ref pHasCamera);
            if (camerror != EVRTrackedCameraError.None)
            {
                Debug.LogError("HasCamera: EVRTrackedCameraError=" + camerror);
                camError = true;
            }
            else if (pHasCamera)
            {
                camerror = trcam_instance.GetCameraFrameSize(index, EVRTrackedCameraFrameType.Undistorted, ref width, ref height, ref buffsize);
                if (camerror != EVRTrackedCameraError.None)
                {
                    Debug.LogError("GetCameraFrameSize: EVRTrackedCameraError=" + camerror);
                    camError = true;
                }
                else
                {
                    buffer  = new byte[buffsize];
                    pBuffer = Marshal.AllocHGlobal((int)buffsize);

                    camerror = trcam_instance.AcquireVideoStreamingService(index, ref pTrackedCamera);
                    if (camerror != EVRTrackedCameraError.None)
                    {
                        Debug.LogError("AcquireVideoStreamingService: EVRTrackedCameraError=" + camerror);
                        camError = true;
                    }
                }
            }
            else
            {
                Debug.Log("no camera found");
                camError = true;
            }
        }
        if (camError)
        {
            Texture2D tex = (gameObject.GetComponent <Renderer>().material.mainTexture as Texture2D);
            if (tex != null)
            {
                staticBuffer = tex.GetRawTextureData();
            }
            Vector3 scale = gameObject.transform.localScale;
            return(new Size(scale.x, scale.y));
        }
        return(new Size(width, height));
    }
Beispiel #2
0
        // Token: 0x060028B7 RID: 10423 RVA: 0x000C4AC4 File Offset: 0x000C2CC4
        public VideoStream(uint deviceIndex)
        {
            this.deviceIndex = deviceIndex;
            CVRTrackedCamera trackedCamera = OpenVR.TrackedCamera;

            if (trackedCamera != null)
            {
                trackedCamera.HasCamera(deviceIndex, ref this._hasCamera);
            }
        }
Beispiel #3
0
    void Start()
    {
        initPos = screen.transform.localPosition;

        uint width = 0, height = 0;
        bool pHasCamera = false;

        trcam_instance = OpenVR.TrackedCamera;

        if (trcam_instance == null)
        {
            Debug.LogError("Error getting TrackedCamera");
        }
        else
        {
            camerror = trcam_instance.HasCamera((uint)index, ref pHasCamera);
            if (camerror != EVRTrackedCameraError.None)
            {
                Debug.LogError("HasCamera: EVRTrackedCameraError=" + camerror);
                return;
            }
            if (pHasCamera)
            {
                camerror = trcam_instance.GetCameraFrameSize((uint)index, EVRTrackedCameraFrameType.Undistorted, ref width, ref height, ref buffsize);
                if (camerror != EVRTrackedCameraError.None)
                {
                    Debug.LogError("GetCameraFrameSize: EVRTrackedCameraError=" + camerror);
                }
                else
                {
                    Debug.Log("width=" + width + " height=" + height + " buffsize=" + buffsize);
                    texture = new Texture2D((int)width, (int)height, TextureFormat.RGBA32, false);

                    buffer  = new byte[buffsize];
                    pBuffer = Marshal.AllocHGlobal((int)buffsize);

                    camerror = trcam_instance.AcquireVideoStreamingService((uint)index, ref pTrackedCamera);
                    if (camerror != EVRTrackedCameraError.None)
                    {
                        Debug.LogError("AcquireVideoStreamingService: EVRTrackedCameraError=" + camerror);
                    }
                }
            }
            else
            {
                Debug.Log("no camera found, only Vive Pre and later supported");
            }
        }
    }