You probably don't need cachable and offsetRect, I think they are always true (unless I'm mistaken). reqSize could be a vector, but it's ok as it is.

This could probably also be better named, but it's fine for now.