1. A method comprising: by a computing device, rendering as a first frame of a video a graphical user interface (GUI) of a software application on the computing device based on a multi-layered-tree representation of the GUI; by the computing device, modifying the multi-layered-tree representation of the GUI in response to an input or output event associated with the GUI; and by the computing device, rendering as a second frame of the video the GUI based on the multi-layered-tree representation of the GUI as modified.