eMsgStatus OnFrame( App * app, VrFrame const & vrFrame, OvrVRMenuMgr & menuMgr, VRMenuObject * self, VRMenuEvent const & event ) { Vector4f selfColor = self->GetColor( ); Vector4f selfTextColor = self->GetTextColor(); VRMenuObjectFlags_t attributionFlags = self->GetFlags(); const float fadeInAlpha = PanoMenu.GetPhotos( )->GetFadeLevel( ); const float fadeOutAlpha = PanoMenu.GetFadeAlpha( ); switch ( PanoMenu.GetPhotos()->GetCurrentState() ) { case Oculus360Photos::MENU_PANO_LOADING: OVR_ASSERT( PanoMenu.GetPhotos() ); if ( CurrentPano != PanoMenu.GetPhotos()->GetActivePano() ) { CurrentPano = PanoMenu.GetPhotos()->GetActivePano(); LoadAttribution( self ); } // Hide attribution attributionFlags |= VRMenuObjectFlags_t( VRMENUOBJECT_DONT_RENDER ); break; case Oculus360Photos::MENU_PANO_REOPEN_FADEIN: case Oculus360Photos::MENU_PANO_FADEIN: // Show attribution attributionFlags &= ~VRMenuObjectFlags_t( VRMENUOBJECT_DONT_RENDER ); // Fade in burger selfColor.w = fadeInAlpha; selfTextColor.w = fadeInAlpha; break; case Oculus360Photos::MENU_PANO_FULLY_VISIBLE: // Show attribution attributionFlags &= ~VRMenuObjectFlags_t( VRMENUOBJECT_DONT_RENDER ); break; case Oculus360Photos::MENU_PANO_FADEOUT: // Fade out burger selfColor.w = fadeOutAlpha; selfTextColor.w = fadeOutAlpha; if ( fadeOutAlpha == 0.0f ) { app->GetGuiSys().CloseMenu( app, &PanoMenu, false ); } break; default: // Hide attribution attributionFlags |= VRMenuObjectFlags_t( VRMENUOBJECT_DONT_RENDER ); break; } self->SetFlags( attributionFlags ); self->SetTextColor( selfTextColor ); self->SetColor( selfColor ); return MSG_STATUS_ALIVE; }
eMsgStatus OnOpening( App * app, VrFrame const & vrFrame, OvrVRMenuMgr & menuMgr, VRMenuObject * self, VRMenuEvent const & event ) { CurrentPano = PanoMenu.GetPhotos()->GetActivePano(); // If opening PanoMenu without a Pano selected, bail if ( CurrentPano == NULL ) { app->GetGuiSys( ).CloseMenu( app, &PanoMenu, false ); } LoadAttribution( self ); return MSG_STATUS_CONSUMED; }
eMsgStatus OnOpening( OvrGuiSys & guiSys, ovrFrameInput const & vrFrame, VRMenuObject * self, VRMenuEvent const & event ) { OVR_UNUSED( vrFrame ); OVR_UNUSED( event ); Oculus360Videos * videos = static_cast< Oculus360Videos* >( guiSys.GetApp()->GetAppInterface() ); CurrentVideo = (OvrVideosMetaDatum *)( videos->GetActiveVideo() ); // If opening VideoMenu without a Video selected, bail if ( CurrentVideo == NULL ) { guiSys.CloseMenu( &VideoMenu, false ); } LoadAttribution( self ); return MSG_STATUS_CONSUMED; }