public void UpdateUnityConfigWithNDKConfig(IntPtr configHandle, ARConfigBase arconfig) { int ret = 0; NDKAPI.HwArConfig_getCameraLensFacing(m_ndkSession.SessionHandle, configHandle, ref ret); arconfig.SetCameraLensFacing((ARConfigCameraLensFacing)ret); AREnginesType aREnginesType = AREnginesSelector.Instance.GetCreatedEngine(); ARDebug.LogInfo("UpdateUnityConfigWithNDKConfig GetARType size {0}", arconfig.GetARType()); NDKAPI.HwArConfig_getLightEstimationMode(m_ndkSession.SessionHandle, configHandle, ref ret); arconfig.SetLightingMode((ARConfigLightingMode)ret); NDKAPI.HwArConfig_getPlaneFindingMode(m_ndkSession.SessionHandle, configHandle, ref ret); arconfig.SetPlaneFindingMode((ARConfigPlaneFindingMode)ret); NDKAPI.HwArConfig_getUpdateMode(m_ndkSession.SessionHandle, configHandle, ref ret); arconfig.SetUpdateMode((ARConfigUpdateMode)ret); //this interface only support by HUAWEI_AR_ENGINE if (AREnginesSelector.Instance.GetCreatedEngine() == AREnginesType.HUAWEI_AR_ENGINE) { NDKAPI.HwArConfig_getHandFindingMode(m_ndkSession.SessionHandle, configHandle, ref ret); arconfig.SetHandFindingMode((ARConfigHandFindingMode)ret); NDKAPI.HwArConfig_getPowerMode(m_ndkSession.SessionHandle, configHandle, ref ret); arconfig.SetPowerMode((ARConfigPowerMode)ret); ulong enableItem = 0; NDKAPI.HwArConfig_getEnableItem(m_ndkSession.SessionHandle, configHandle, ref enableItem); enableItem = 0; arconfig.EnableDepth = Convert.ToBoolean(enableItem & ARConfigBase.EnableItem_Depth); arconfig.EnableMask = Convert.ToBoolean(enableItem & ARConfigBase.EnableItem_Mask); } }
protected override void OnResume() { Log.Debug(TAG, "OnResume"); base.OnResume(); mDisplayRotationManager.RegisterDisplayListener(); Exception exception = null; message = null; if (mArSession == null) { try { if (!ArEngineAbilityCheck()) { Finish(); return; } mArSession = new ARSession(this); mArConfig = new ARFaceTrackingConfig(mArSession); mArConfig.SetPowerMode(ARConfigBase.PowerMode.PowerSaving); if (isOpenCameraOutside) { mArConfig.SetImageInputMode(ARConfigBase.ImageInputMode.ExternalInputAll); } mArSession.Configure(mArConfig); } catch (Exception capturedException) { exception = capturedException; SetMessageWhenError(capturedException); } if (message != null) { StopArSession(exception); return; } } try { mArSession.Resume(); } catch (ARCameraNotAvailableException e) { Toast.MakeText(this, "Camera open failed, please restart the app", ToastLength.Short).Show(); mArSession = null; return; } mDisplayRotationManager.RegisterDisplayListener(); SetCamera(); mFaceRenderManager.SetArSession(mArSession); mFaceRenderManager.SetOpenCameraOutsideFlag(isOpenCameraOutside); mFaceRenderManager.SetTextureId(textureId); glSurfaceView.OnResume(); }