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:
vtkRenderer::284
// 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[0] == size[0] &&
this->BackingStoreSize[1] == size[1])
In essence the BackingStore feature is permantly disabled in all but the most trivial programs.
This makes me very sad