Page MenuHomePhabricator

Equality checks when setting data storage for renderers
Closed, ResolvedPublic

Description

When the data storage of a renderer is set, a bounding box is calculated
from the currently visible data nodes in the data storage, and the renderer
is updated. The setters do not check if the 'new' data storage is the same
as the current one, which results that the bounding box is recalculated
and the renderer is updated again, unnecessarily.

This changes adds a check to the setters to skip the update if the data
storage is the same.

The data storage is set from the constructor of the renderer (to the data
storage of the rendering manager), and it is also set by explicit
SetDataStorage calls after the renderers have been constructed. Ideally,
the repeated calls to the setter should be eliminated, but with this
change the repeated calls will return immediately, at least.

Related Objects