Transformation of graphic objects is described. A graphic object modification system receives an indication of a transformation to be performed on one or more graphic objects. For merger transformations, a stroke and a fill are identified for each graphic object being merged. Fill values are written to a buffer in a first pass, and stroke values are written to the buffer in a second pass without overwriting fill values. The merged graphic object is then output by rendering values stored in the buffer. For other non-merger transformations, z-order information is identified for each displayed graphic object. Graphic objects selected for transformation are allocated into clusters based on their z-order information. Clusters are rendered in separate GPU textures and transformations are applied to the separate textures, enabling the graphic object modification system to output transformation results in real-time without re-rendering the actual graphic objects being transformed.