ActiveFramePool implemented a LRU cache to keep tracking the most recent accessed key frames A key frame will be unloaded if it's not accessed for a while (at the end of cache list) The ActiveFramePool will be updated whenever Editor::scrubTo() gets called
A Sub Painter class is meant to be used in existing painter classes It does not and should not cary the same responsibility as a Painter class It works as a sort of utility class for functionality that makes sense to reuse Eg