void sk_canvas_draw_picture(sk_canvas_t* ccanvas, const sk_picture_t* cpicture, const sk_matrix_t* cmatrix, const sk_paint_t* cpaint) { const SkMatrix* matrixPtr = NULL; SkMatrix matrix; if (cmatrix) { from_c_matrix(cmatrix, &matrix); matrixPtr = &matrix; } AsCanvas(ccanvas)->drawPicture(AsPicture(cpicture), matrixPtr, AsPaint(cpaint)); }
void sk_canvas_draw_image_rect(sk_canvas_t* ccanvas, const sk_image_t* cimage, const sk_rect_t* csrcR, const sk_rect_t* cdstR, const sk_paint_t* cpaint) { SkCanvas* canvas = AsCanvas(ccanvas); const SkImage* image = AsImage(cimage); const SkRect& dst = AsRect(*cdstR); const SkPaint* paint = AsPaint(cpaint); if (csrcR) { canvas->drawImageRect(image, AsRect(*csrcR), dst, paint); } else { canvas->drawImageRect(image, dst, paint); } }
void sk_canvas_draw_image(sk_canvas_t* ccanvas, const sk_image_t* cimage, float x, float y, const sk_paint_t* cpaint) { AsCanvas(ccanvas)->drawImage(AsImage(cimage), x, y, AsPaint(cpaint)); }
void sk_canvas_draw_path(sk_canvas_t* ccanvas, const sk_path_t* cpath, const sk_paint_t* cpaint) { AsCanvas(ccanvas)->drawPath(AsPath(*cpath), AsPaint(*cpaint)); }
void sk_canvas_draw_oval(sk_canvas_t* ccanvas, const sk_rect_t* crect, const sk_paint_t* cpaint) { AsCanvas(ccanvas)->drawOval(AsRect(*crect), AsPaint(*cpaint)); }
void sk_canvas_clip_path(sk_canvas_t* ccanvas, const sk_path_t* cpath) { AsCanvas(ccanvas)->clipPath(AsPath(*cpath)); }
void sk_canvas_clip_rect(sk_canvas_t* ccanvas, const sk_rect_t* crect) { AsCanvas(ccanvas)->clipRect(AsRect(*crect)); }
void sk_canvas_concat(sk_canvas_t* ccanvas, const sk_matrix_t* cmatrix) { SkASSERT(cmatrix); SkMatrix matrix; from_c_matrix(cmatrix, &matrix); AsCanvas(ccanvas)->concat(matrix); }
void sk_canvas_rotate_radians(sk_canvas_t* ccanvas, float radians) { AsCanvas(ccanvas)->rotate(SkRadiansToDegrees(radians)); }
void sk_canvas_rotate_degress(sk_canvas_t* ccanvas, float degrees) { AsCanvas(ccanvas)->rotate(degrees); }
void sk_canvas_scale(sk_canvas_t* ccanvas, float sx, float sy) { AsCanvas(ccanvas)->scale(sx, sy); }
void sk_canvas_translate(sk_canvas_t* ccanvas, float dx, float dy) { AsCanvas(ccanvas)->translate(dx, dy); }
void sk_canvas_restore(sk_canvas_t* ccanvas) { AsCanvas(ccanvas)->restore(); }
void sk_canvas_save_layer(sk_canvas_t* ccanvas, const sk_rect_t* crect, const sk_paint_t* cpaint) { AsCanvas(ccanvas)->drawRect(AsRect(*crect), AsPaint(*cpaint)); }
void sk_canvas_save(sk_canvas_t* ccanvas) { AsCanvas(ccanvas)->save(); }
void sk_canvas_draw_image_rect(sk_canvas_t* ccanvas, const sk_image_t* cimage, const sk_rect_t* csrcR, const sk_rect_t* cdstR, const sk_paint_t* cpaint) { AsCanvas(ccanvas)->drawImageRect(AsImage(cimage), AsRect(csrcR), AsRect(*cdstR), AsPaint(cpaint)); }
void sk_canvas_skew(sk_canvas_t* ccanvas, float sx, float sy) { AsCanvas(ccanvas)->skew(sx, sy); }
void sk_canvas_draw_circle(sk_canvas_t* ccanvas, float cx, float cy, float rad, const sk_paint_t* cpaint) { AsCanvas(ccanvas)->drawCircle(cx, cy, rad, AsPaint(*cpaint)); }