AppKit + CALayers makes this trivial (performance wise) on the Mac. It only gets challenging when you have no granular control over the UI framework. If it forces you to make every little interactive element its own view ... well, good luck optimizing performance.