ccontext:SetSourceSurface(surface, x, y)
surface
and setting it as the source in the context with ccontext:SetSource().
The x and y parameters give the user-space coordinate at which
the surface origin should appear. The surface origin is its
upper-left corner before any transformation has been applied. The
x and y parameters are negated and then set as translation values
in the pattern matrix.
Other than the initial translation pattern matrix, as described above, all other pattern attributes, such as its extend mode, are set to the default values as in cairo.PatternForSurface(). The resulting pattern can be queried with ccontext:GetSource() so that these attributes can be modified if desired, (e.g. to create a repeating pattern with cpattern:SetExtend()).