Chromium Code Reviews| Index: src/c/sk_surface.cpp |
| diff --git a/src/c/sk_surface.cpp b/src/c/sk_surface.cpp |
| index c75ab23d55728f67ee0b348ba70bac82a3d24c65..7e93f9c7bd6f26520f6ec4e135c169fdac6b0786 100644 |
| --- a/src/c/sk_surface.cpp |
| +++ b/src/c/sk_surface.cpp |
| @@ -91,6 +91,16 @@ static bool from_c_info(const sk_imageinfo_t& cinfo, SkImageInfo* info) { |
| return true; |
| } |
| +static void from_c_matrix(const sk_matrix_t* cmatrix, SkMatrix* matrix) { |
| + if (cmatrix) { |
| + matrix->setAll(cmatrix->mat[0], cmatrix->mat[1], cmatrix->mat[2], |
| + cmatrix->mat[3], cmatrix->mat[4], cmatrix->mat[5], |
| + cmatrix->mat[6], cmatrix->mat[7], cmatrix->mat[8]); |
| + } else { |
| + matrix->setIdentity(); |
| + } |
| +} |
| + |
| const struct { |
| sk_path_direction_t fC; |
| SkPath::Direction fSk; |
| @@ -320,6 +330,12 @@ void sk_canvas_skew(sk_canvas_t* ccanvas, float sx, float sy) { |
| AsCanvas(ccanvas)->skew(sx, sy); |
| } |
| +void sk_canvas_concat_matrix(sk_canvas_t* ccanvas, const sk_matrix_t* cmatrix) { |
| + SkMatrix matrix; |
|
reed1
2014/12/02 17:41:43
can probably move the null-check to here, rather t
abarth-chromium
2014/12/02 17:43:16
IMHO, we should crash/assert. It seems better for
|
| + from_c_matrix(cmatrix, &matrix); |
| + AsCanvas(ccanvas)->concat(matrix); |
| +} |
| + |
| void sk_canvas_draw_paint(sk_canvas_t* ccanvas, const sk_paint_t* cpaint) { |
| AsCanvas(ccanvas)->drawPaint(AsPaint(*cpaint)); |
| } |
| @@ -419,13 +435,7 @@ sk_shader_t* sk_shader_new_linear_gradient(const sk_point_t pts[2], |
| return NULL; |
| } |
| SkMatrix matrix; |
| - if (cmatrix) { |
| - matrix.setAll(cmatrix->mat[0], cmatrix->mat[1], cmatrix->mat[2], |
| - cmatrix->mat[3], cmatrix->mat[4], cmatrix->mat[5], |
| - cmatrix->mat[6], cmatrix->mat[7], cmatrix->mat[8]); |
| - } else { |
| - matrix.setIdentity(); |
| - } |
| + from_c_matrix(cmatrix, &matrix); |
| SkShader* s = SkGradientShader::CreateLinear(reinterpret_cast<const SkPoint*>(pts), |
| reinterpret_cast<const SkColor*>(colors), |
| colorPos, colorCount, mode, 0, &matrix); |