private static SKImage FromPicture(SKPicture picture, SKSizeI dimensions, SKMatrix *matrix, SKPaint paint) { if (picture == null) { throw new ArgumentNullException(nameof(picture)); } var p = paint?.Handle ?? IntPtr.Zero; return(GetObject(SkiaApi.sk_image_new_from_picture(picture.Handle, &dimensions, matrix, p))); }
private SKShader ToShader(bool isOpaque, SKData uniforms, SKShader[] children, SKMatrix *localMatrix) { var uniformsHandle = uniforms?.Handle ?? IntPtr.Zero; using var childrenHandles = Utils.RentHandlesArray(children, true); fixed(IntPtr *ch = childrenHandles) { return(SKShader.GetObject(SkiaApi.sk_runtimeeffect_make_shader(Handle, uniformsHandle, ch, (IntPtr)childrenHandles.Length, localMatrix, isOpaque))); } }
private static void SKGlyphPathDelegateProxyImplementation(IntPtr pathOrNull, SKMatrix *matrix, void *context) { var del = Get <SKGlyphPathDelegate> ((IntPtr)context, out _); var path = SKPath.GetObject(pathOrNull, false); del.Invoke(path, *matrix); }