The new API also has a number of new objects and features. For instance, if you draw a path, the 2D API uses strokeobject to convert the trajectory of a path into a fillable outline. Another object controls how to take that user space outline and transform it into device space. Then paintObject controls what colors are placed in that outline. Finally, a composite object controls how colors merge onto the screen.
Programmers can, however, replace any part of that pipeline.
For rendering paths, there is now an interface called path, and there's a common-denominator called bezierPath, which implements a path and consists of lines and beziers. The paint interface lets you define an arbitrary complex fill pattern. Then, there are classes that implement this gradient, and support tiling over an image of the area to be filled. The colorObject is now simply an object that implements paint. By using a buffered image object, you can now get directly at pixels.