I do not understand
       [code]void AnimatingScene::SetupViewport()
       
       {
       
       Renderer* renderer = GetSubsystem();
      
// Set up a viewport to the Renderer subsystem so that the 3D scene can be seen
SharedPtr<Viewport> viewport(new Viewport(context_, scene_, cameraNode_->GetComponent<Camera>()));
renderer->SetViewport(0, viewport);
       }
       
       [/code]
       
       
        SharedPtr viewport
       
       is local variable
       
       
        SharedPtr viewport
       
       convert to raw pointer
       
        Viewport*
       
       (reference count not increased) and used in SetViewport()
       
       
        SharedPtr viewport
       
       deleted as local variable (reference count == 0)
       
       Why
       
        Viewport*
       
       is not destroyed?
      
 
     
     
     
    