handle = csurface:CreateForRectangle(x, y, width, height)
The semantics of subsurfaces have not been finalized yet unless the rectangle is in full device units, is contained within the extents of the target surface, and the target or subsurface's device transforms are not changed.
This function returns a handle to the newly allocated surface. The caller owns the surface and should call csurface:Free() when done with it.
This function always returns a valid handle, but it will return a handle to a "nil" surface if the source surface is already in an error state or any other error occurs.