// Token: 0x06000089 RID: 137 RVA: 0x0000658C File Offset: 0x0000478C
    private ulong GetOverlayHandle(string overlayName, global::UnityEngine.Transform transform, float widthInMeters = 1f)
    {
        ulong num = 0UL;

        global::Valve.VR.CVROverlay overlay = global::Valve.VR.OpenVR.Overlay;
        bool  flag = overlay == null;
        ulong result;

        if (flag)
        {
            result = num;
        }
        else
        {
            string pchOverlayKey = global::SteamVR_Overlay.key + "." + overlayName;
            global::Valve.VR.EVROverlayError evroverlayError = overlay.FindOverlay(pchOverlayKey, ref num);
            bool flag2 = evroverlayError > global::Valve.VR.EVROverlayError.None;
            if (flag2)
            {
                evroverlayError = overlay.CreateOverlay(pchOverlayKey, overlayName, ref num);
            }
            bool flag3 = evroverlayError == global::Valve.VR.EVROverlayError.None;
            if (flag3)
            {
                overlay.ShowOverlay(num);
                overlay.SetOverlayAlpha(num, this.alpha);
                overlay.SetOverlayWidthInMeters(num, widthInMeters);
                bool flag4 = global::SteamVR.instance.graphicsAPI == global::Valve.VR.EGraphicsAPIConvention.API_DirectX;
                if (flag4)
                {
                    global::Valve.VR.VRTextureBounds_t vrtextureBounds_t = default(global::Valve.VR.VRTextureBounds_t);
                    vrtextureBounds_t.uMin = 0f;
                    vrtextureBounds_t.vMin = 1f;
                    vrtextureBounds_t.uMax = 1f;
                    vrtextureBounds_t.vMax = 0f;
                    overlay.SetOverlayTextureBounds(num, ref vrtextureBounds_t);
                }
                global::SteamVR_Camera steamVR_Camera = (this.loadingScreenDistance == 0f) ? global::SteamVR_Render.Top() : null;
                bool flag5 = steamVR_Camera != null && steamVR_Camera.origin != null;
                if (flag5)
                {
                    global::SteamVR_Utils.RigidTransform rigidTransform = new global::SteamVR_Utils.RigidTransform(steamVR_Camera.origin, transform);
                    rigidTransform.pos.x = rigidTransform.pos.x / steamVR_Camera.origin.localScale.x;
                    rigidTransform.pos.y = rigidTransform.pos.y / steamVR_Camera.origin.localScale.y;
                    rigidTransform.pos.z = rigidTransform.pos.z / steamVR_Camera.origin.localScale.z;
                    global::Valve.VR.HmdMatrix34_t hmdMatrix34_t = rigidTransform.ToHmdMatrix34();
                    overlay.SetOverlayTransformAbsolute(num, global::SteamVR_Render.instance.trackingSpace, ref hmdMatrix34_t);
                }
                else
                {
                    global::Valve.VR.HmdMatrix34_t hmdMatrix34_t2 = new global::SteamVR_Utils.RigidTransform(transform).ToHmdMatrix34();
                    overlay.SetOverlayTransformAbsolute(num, global::SteamVR_Render.instance.trackingSpace, ref hmdMatrix34_t2);
                }
            }
            result = num;
        }
        return(result);
    }
Exemple #2
0
 // Token: 0x06000173 RID: 371 RVA: 0x0000C178 File Offset: 0x0000A378
 public global::Valve.VR.EVRCompositorError Submit(global::Valve.VR.EVREye eEye, ref global::Valve.VR.Texture_t pTexture, ref global::Valve.VR.VRTextureBounds_t pBounds, global::Valve.VR.EVRSubmitFlags nSubmitFlags)
 {
     return(this.FnTable.Submit(eEye, ref pTexture, ref pBounds, nSubmitFlags));
 }
Exemple #3
0
    // Token: 0x0600009D RID: 157 RVA: 0x000073DC File Offset: 0x000055DC
    public void UpdateOverlay()
    {
        global::Valve.VR.CVROverlay overlay = global::Valve.VR.OpenVR.Overlay;
        bool flag = overlay == null;

        if (!flag)
        {
            bool flag2 = this.texture != null;
            if (flag2)
            {
                global::Valve.VR.EVROverlayError evroverlayError = overlay.ShowOverlay(this.handle);
                bool flag3 = evroverlayError == global::Valve.VR.EVROverlayError.InvalidHandle || evroverlayError == global::Valve.VR.EVROverlayError.UnknownOverlay;
                if (flag3)
                {
                    bool flag4 = overlay.FindOverlay(global::SteamVR_Overlay.key, ref this.handle) > global::Valve.VR.EVROverlayError.None;
                    if (flag4)
                    {
                        return;
                    }
                }
                global::Valve.VR.Texture_t texture_t = default(global::Valve.VR.Texture_t);
                texture_t.handle      = this.texture.GetNativeTexturePtr();
                texture_t.eType       = global::SteamVR.instance.graphicsAPI;
                texture_t.eColorSpace = global::Valve.VR.EColorSpace.Auto;
                overlay.SetOverlayTexture(this.handle, ref texture_t);
                overlay.SetOverlayAlpha(this.handle, this.alpha);
                overlay.SetOverlayWidthInMeters(this.handle, this.scale);
                overlay.SetOverlayAutoCurveDistanceRangeInMeters(this.handle, this.curvedRange.x, this.curvedRange.y);
                global::Valve.VR.VRTextureBounds_t vrtextureBounds_t = default(global::Valve.VR.VRTextureBounds_t);
                vrtextureBounds_t.uMin = (0f + this.uvOffset.x) * this.uvOffset.z;
                vrtextureBounds_t.vMin = (1f + this.uvOffset.y) * this.uvOffset.w;
                vrtextureBounds_t.uMax = (1f + this.uvOffset.x) * this.uvOffset.z;
                vrtextureBounds_t.vMax = (0f + this.uvOffset.y) * this.uvOffset.w;
                overlay.SetOverlayTextureBounds(this.handle, ref vrtextureBounds_t);
                global::Valve.VR.HmdVector2_t hmdVector2_t = default(global::Valve.VR.HmdVector2_t);
                hmdVector2_t.v0 = this.mouseScale.x;
                hmdVector2_t.v1 = this.mouseScale.y;
                overlay.SetOverlayMouseScale(this.handle, ref hmdVector2_t);
                global::SteamVR_Camera steamVR_Camera = global::SteamVR_Render.Top();
                bool flag5 = steamVR_Camera != null && steamVR_Camera.origin != null;
                if (flag5)
                {
                    global::SteamVR_Utils.RigidTransform rigidTransform = new global::SteamVR_Utils.RigidTransform(steamVR_Camera.origin, base.transform);
                    rigidTransform.pos.x = rigidTransform.pos.x / steamVR_Camera.origin.localScale.x;
                    rigidTransform.pos.y = rigidTransform.pos.y / steamVR_Camera.origin.localScale.y;
                    rigidTransform.pos.z = rigidTransform.pos.z / steamVR_Camera.origin.localScale.z;
                    rigidTransform.pos.z = rigidTransform.pos.z + this.distance;
                    global::Valve.VR.HmdMatrix34_t hmdMatrix34_t = rigidTransform.ToHmdMatrix34();
                    overlay.SetOverlayTransformAbsolute(this.handle, global::SteamVR_Render.instance.trackingSpace, ref hmdMatrix34_t);
                }
                overlay.SetOverlayInputMethod(this.handle, this.inputMethod);
                bool flag6 = this.curved || this.antialias;
                if (flag6)
                {
                    this.highquality = true;
                }
                bool flag7 = this.highquality;
                if (flag7)
                {
                    overlay.SetHighQualityOverlay(this.handle);
                    overlay.SetOverlayFlag(this.handle, global::Valve.VR.VROverlayFlags.Curved, this.curved);
                    overlay.SetOverlayFlag(this.handle, global::Valve.VR.VROverlayFlags.RGSS4X, this.antialias);
                }
                else
                {
                    bool flag8 = overlay.GetHighQualityOverlay() == this.handle;
                    if (flag8)
                    {
                        overlay.SetHighQualityOverlay(0UL);
                    }
                }
            }
            else
            {
                overlay.HideOverlay(this.handle);
            }
        }
    }
Exemple #4
0
 public static extern void SetSubmitParams(global::Valve.VR.VRTextureBounds_t boundsL, global::Valve.VR.VRTextureBounds_t boundsR, global::Valve.VR.EVRSubmitFlags nSubmitFlags);
Exemple #5
0
    // Token: 0x06000102 RID: 258 RVA: 0x0000AC3C File Offset: 0x00008E3C
    public static global::UnityEngine.Mesh CreateHiddenAreaMesh(global::Valve.VR.HiddenAreaMesh_t src, global::Valve.VR.VRTextureBounds_t bounds)
    {
        bool flag = src.unTriangleCount == 0U;

        global::UnityEngine.Mesh result;
        if (flag)
        {
            result = null;
        }
        else
        {
            float[] array = new float[src.unTriangleCount * 3U * 2U];
            global::System.Runtime.InteropServices.Marshal.Copy(src.pVertexData, array, 0, array.Length);
            global::UnityEngine.Vector3[] array2 = new global::UnityEngine.Vector3[src.unTriangleCount * 3U + 12U];
            int[] array3 = new int[src.unTriangleCount * 3U + 24U];
            float num    = 2f * bounds.uMin - 1f;
            float num2   = 2f * bounds.uMax - 1f;
            float num3   = 2f * bounds.vMin - 1f;
            float num4   = 2f * bounds.vMax - 1f;
            int   num5   = 0;
            int   num6   = 0;
            while ((long)num5 < (long)((ulong)(src.unTriangleCount * 3U)))
            {
                float num7 = global::SteamVR_Utils.Lerp(num, num2, array[num6++]);
                float num8 = global::SteamVR_Utils.Lerp(num3, num4, array[num6++]);
                array2[num5] = new global::UnityEngine.Vector3(num7, num8, 0f);
                array3[num5] = num5;
                num5++;
            }
            int num9  = (int)(src.unTriangleCount * 3U);
            int num10 = num9;
            array2[num10++] = new global::UnityEngine.Vector3(-1f, -1f, 0f);
            array2[num10++] = new global::UnityEngine.Vector3(num, -1f, 0f);
            array2[num10++] = new global::UnityEngine.Vector3(-1f, 1f, 0f);
            array2[num10++] = new global::UnityEngine.Vector3(num, 1f, 0f);
            array2[num10++] = new global::UnityEngine.Vector3(num2, -1f, 0f);
            array2[num10++] = new global::UnityEngine.Vector3(1f, -1f, 0f);
            array2[num10++] = new global::UnityEngine.Vector3(num2, 1f, 0f);
            array2[num10++] = new global::UnityEngine.Vector3(1f, 1f, 0f);
            array2[num10++] = new global::UnityEngine.Vector3(num, num3, 0f);
            array2[num10++] = new global::UnityEngine.Vector3(num2, num3, 0f);
            array2[num10++] = new global::UnityEngine.Vector3(num, num4, 0f);
            array2[num10++] = new global::UnityEngine.Vector3(num2, num4, 0f);
            int num11 = num9;
            array3[num11++] = num9;
            array3[num11++] = num9 + 1;
            array3[num11++] = num9 + 2;
            array3[num11++] = num9 + 2;
            array3[num11++] = num9 + 1;
            array3[num11++] = num9 + 3;
            array3[num11++] = num9 + 4;
            array3[num11++] = num9 + 5;
            array3[num11++] = num9 + 6;
            array3[num11++] = num9 + 6;
            array3[num11++] = num9 + 5;
            array3[num11++] = num9 + 7;
            array3[num11++] = num9 + 1;
            array3[num11++] = num9 + 4;
            array3[num11++] = num9 + 8;
            array3[num11++] = num9 + 8;
            array3[num11++] = num9 + 4;
            array3[num11++] = num9 + 9;
            array3[num11++] = num9 + 10;
            array3[num11++] = num9 + 11;
            array3[num11++] = num9 + 3;
            array3[num11++] = num9 + 3;
            array3[num11++] = num9 + 11;
            array3[num11++] = num9 + 6;
            result          = new global::UnityEngine.Mesh
            {
                vertices  = array2,
                triangles = array3,
                bounds    = new global::UnityEngine.Bounds(global::UnityEngine.Vector3.zero, new global::UnityEngine.Vector3(float.MaxValue, float.MaxValue, float.MaxValue))
            };
        }
        return(result);
    }
Exemple #6
0
 // Token: 0x060001A4 RID: 420 RVA: 0x0000C868 File Offset: 0x0000AA68
 public global::Valve.VR.EVROverlayError GetOverlayTextureBounds(ulong ulOverlayHandle, ref global::Valve.VR.VRTextureBounds_t pOverlayTextureBounds)
 {
     return(this.FnTable.GetOverlayTextureBounds(ulOverlayHandle, ref pOverlayTextureBounds));
 }