Skip to content
  • Utkarsh Ayachit's avatar
    refactoring remote rendering · ced8cf80
    Utkarsh Ayachit authored
    This commit cleans up the code that manages remote rendering.
    This fixes several issues: #15205, #17611, #18940, #18152, #18938,
    and #18937. #17815 is also addressed since its no longer applicable.
    
    ParaView no longer creates a single render window to use among all
    vtkPVView instances on non-client processes like pvbatch or pvserver,
    pvrenderserver. This shared render window was the root cause of several
    headaches and necessitated classes like vtkPVSynchronizedRenderWindows
    and extra burden on views to re-direct several calls like creating
    windows, resizing windows to vtkPVSynchronizedRenderWindows. This is no
    longer the case. Non-client processes still have a single viewable
    window per proceses (vtkPVProcessWindow). However, this is not the
    window that each view renders into. Instead, each view creates its own
    vtkRenderWindow subclass. However, it's a FBO-based render window which
    shares the context with the process specific render window
    (created in vtkPVProcessWindow). This makes it possible to simply blit
    back the rendering results from each view to the user-viewable window
    when needed (e.g. tile display, cave, etc.).
    
    `vtkPVSynchronizedRenderWindows` is now obsolete and removed with
    appropriate convenience API now moved over to vtkPVView. This also
    removes the need to initialize each view with a unique ID and hence
    `vtkPVView::Initialze()` API is no longer needed and hence removed.
    
    vtkIceTCompositePass was fixed to address several issues including tile
    display aspect ratios (#18152, #17611). vtkPVIceTCompositePass is no
    longer needed and hence removed which further simplifies the code.
    ced8cf80