void Awake() { renderWidth = 2048; renderHeight = 1024; #if !UNITY_EDITOR var threadId = GetCurrentThreadId(); EnumThreadWindows(threadId, (hWnd, lParam) => { var classText = new StringBuilder(UnityWindowClassName.Length + 1); GetClassName(hWnd, classText, classText.Capacity); if (classText.ToString() != UnityWindowClassName) { return(true); } _windowHandle = hWnd; return(false); }, IntPtr.Zero); #endif bool result = false; HMDPresent(ref result); ThreeGlassesUtils.Log("ThreeGlassesHeadDisplayLife init"); uint[] buffsize = { renderWidth, renderHeight }; ThreeGlassesDllInterface.GetNativeRenderSize(buffsize); renderWidth = (uint)(scaleRenderSize * buffsize[0]); renderHeight = (uint)(scaleRenderSize * buffsize[1]); renderWidth = renderWidth - (renderWidth % 16); renderHeight = renderHeight - (renderHeight % 16); ThreeGlassesDllInterface.SZVRPluginInit( (uint)(AsynchronousProjection ? 0 : 1), renderWidth, renderHeight); #if !UNITY_EDITOR if (_windowHandle != IntPtr.Zero) { ShowWindow(_windowHandle, SW_SHOWNORMAL); SetForegroundWindow(_windowHandle); } #endif }
public void Resume() { // init plugin ThreeGlassesDllInterface.SZVRPluginInit( (uint)(ThreeGlassesHeadDisplayLife.AsynchronousProjection ? 0 : 1), ThreeGlassesHeadDisplayLife.renderWidth, ThreeGlassesHeadDisplayLife.renderHeight); // create rendertexture for (var i = 0; i < CAMERA_NUM; i++) { // renderTexture[i] = new RenderTexture( // (int)renderWidth / 2, // (int)renderHeight, // 24, // RenderTextureFormat.Default, // RenderTextureReadWrite.Default); // renderTexture[i].antiAliasing = (int)hmdAntiAliasingLevel; renderTexture[i].Create(); } // bind rendertexure ThreeGlassesSubCamera[] cams = GameObject.FindObjectsOfType(typeof(ThreeGlassesSubCamera)) as ThreeGlassesSubCamera[]; foreach (var cam in cams) { Camera tempCamera = cam.gameObject.GetComponent <Camera>(); if (ThreeGlassesSubCamera.CameraTypes.Screen == cam.CameraType) { tempCamera.targetTexture = null; continue; } tempCamera.targetTexture = renderTexture[(int)cam.CameraType]; } // resume render HMD StopAllCoroutines(); StartCoroutine(CallPluginAtEndOfFrames()); }