//================================ // OvrSurfaceAnimComponent::SetFrameVisibilities void OvrSurfaceAnimComponent::SetFrameVisibilities( App * app, VrFrame const & vrFrame, OvrVRMenuMgr & menuMgr, VRMenuObject * self ) const { int minIndex = GetCurFrame() * SurfacesPerFrame; int maxIndex = ( GetCurFrame() + 1 ) * SurfacesPerFrame; for ( int i = 0; i < self->NumSurfaces(); ++i ) { self->SetSurfaceVisible( i, i >= minIndex && i < maxIndex ); } }
float OvrTrailsAnimComponent::GetAlphaForFrame( const int frame ) const { const int currentFrame = GetCurFrame( ); if ( frame == currentFrame ) return 1.0f; const float alpha = GetFractionalFrame( ); const float aheadFactor = 1.0f / FramesAhead; for ( int ahead = 1; ahead <= FramesAhead; ++ahead ) { if ( frame == ( currentFrame + ahead ) ) { return ( alpha * aheadFactor ) + ( aheadFactor * ( FramesAhead - ahead ) ); } } const float invAlpha = 1.0f - alpha; const float behindFactor = 1.0f / FramesBehind; for ( int behind = 1; behind < FramesBehind; ++behind ) { if ( frame == ( currentFrame - behind ) ) { return ( invAlpha * behindFactor ) + ( behindFactor * ( FramesBehind - behind ) ); } } return 0.0f; }
CImage* sysuVideo::YUVReader::GetNextFrame() { if (!HasNextFrame() || !isStreamOpen) throw EXCEPTION_ACCESS_VIOLATION; constructFrame(); ++curFrameCnt; return GetCurFrame(); }
float sqr_tools::CFrameScaleCtrlImp::GetUpdateFrame( void ) { if (IsPlay()) { if (MODEL) { int num = MODEL->GetAnimateMaxFrameNum(); if ( num == 0 ) return GetCurFrame(); else return ((CEditModel*)MODEL)->GetCurFrame(); } else return 0.0f; } else { return GetCurFrame(); } }
CImage* sysuVideo::YUVReader::GetNthFrame(unsigned long frmNum) { if (!HasNthFrame(frmNum) || !isStreamOpen) throw EXCEPTION_ACCESS_VIOLATION; fseek(videoStream, frmNum * (YCount + UCount + VCount), SEEK_SET); constructFrame(); curFrameCnt = frmNum; return GetCurFrame(); }
CImage* sysuVideo::YUVReader::GetPreFrame() { if (!HasPreFrame() || !isStreamOpen) throw EXCEPTION_ACCESS_VIOLATION; fseek(videoStream, -2 * (YCount + UCount + VCount), SEEK_CUR); constructFrame(); --curFrameCnt; return GetCurFrame(); }
void OvrTrailsAnimComponent::SetFrameVisibilities( App * app, VrFrame const & vrFrame, OvrVRMenuMgr & menuMgr, VRMenuObject * self ) const { // LOG( "FracFrame: %f", GetFractionalFrame() ); const int currentFrame = GetCurFrame(); for ( int i = 0; i < self->NumChildren(); ++i ) { menuHandle_t childHandle = self->GetChildHandleForIndex( i ); if ( VRMenuObject * childObject = menuMgr.ToObject( childHandle ) ) { Vector4f color = childObject->GetColor(); color.w = GetAlphaForFrame( i ); childObject->SetColor( color ); } } }