public static Pattern Lookup(IntPtr pattern, bool owner)
{
if (pattern == IntPtr.Zero)
return null;
PatternType pt = NativeMethods.cairo_pattern_get_type (pattern);
switch (pt) {
case PatternType.Solid:
return new SolidPattern (pattern, owner);
case PatternType.Surface:
return new SurfacePattern (pattern, owner);
case PatternType.Linear:
return new LinearGradient (pattern, owner);
case PatternType.Radial:
return new RadialGradient (pattern, owner);
default:
return new Pattern (pattern, owner);
}
}