So, I’d like to use vtkRenderer::BackingStoreOn() but I just noticed that vtkInteractorObserver::ComputeDisplayToWorld() and vtkInteractorObserver::ComputeWorldToDisplay() mark the passed renderer dirty because they indirectly call vtkRenderer::SetWorldPoint() and/or vtkRenderer::SetViewPoint() and/or vtkRenderer::DisplayPoint() all of which call vtkRenderer::Modified().
This defeats this code in the vtkRenderer where it checks if the BackingStore can be used:
// if backing store is on and we have a stored image if (this->BackingStore && this->BackingImage && this->MTime < this->RenderTime && this->ActiveCamera->GetMTime() < this->RenderTime && this->RenderWindow->GetMTime() < this->RenderTime && this->BackingStoreSize == size && this->BackingStoreSize == size)
In essence the BackingStore feature is permantly disabled in all but the most trivial programs.
This makes me very sad