1. A non-transitory program storage device, on which are stored instructions for execution by a data processing apparatus, comprising instructions for causing the data processing apparatus to: interpose a framework layer between an application and hardware resources of the data processing apparatus, wherein the framework layer comprises instructions that when executed cause the data processing apparatus to: receive a hierarchically organized plurality of media objects from the application; identify and configure hardware resources for rendering the plurality of media objects; and render the plurality of media objects with the identified and configured hardware resources, wherein the plurality of media objects do not describe how the media objects should be rendered.