From aa90f17123bf435893271d4e95af88f56488017a Mon Sep 17 00:00:00 2001 From: Matthew Leibowitz Date: Sun, 12 Feb 2017 00:42:03 +0400 Subject: [PATCH] Added binding for SkCanvas::drawVertices --- include/c/sk_canvas.h | 2 ++ include/c/sk_types.h | 6 ++++++ src/c/sk_canvas.cpp | 3 +++ src/c/sk_enums.cpp | 5 +++++ 4 files changed, 16 insertions(+) diff --git a/include/c/sk_canvas.h b/include/c/sk_canvas.h index 920ca3b..678b5e6 100644 --- a/include/c/sk_canvas.h +++ b/include/c/sk_canvas.h @@ -350,6 +350,8 @@ SK_C_API void sk_canvas_draw_link_destination_annotation(sk_canvas_t* t, const s SK_C_API void sk_canvas_draw_bitmap_lattice(sk_canvas_t* t, const sk_bitmap_t* bitmap, const sk_lattice_t* lattice, const sk_rect_t* dst, const sk_paint_t* paint); SK_C_API void sk_canvas_draw_image_lattice(sk_canvas_t* t, const sk_image_t* image, const sk_lattice_t* lattice, const sk_rect_t* dst, const sk_paint_t* paint); +SK_C_API void sk_canvas_draw_vertices(sk_canvas_t* ccanvas, sk_vertex_mode_t vmode, int vertexCount, const sk_point_t* vertices, const sk_point_t* texs, const sk_color_t* colors, sk_blendmode_t mode, const uint16_t* indices, int indexCount, const sk_paint_t* paint); + SK_C_PLUS_PLUS_END_GUARD #endif diff --git a/include/c/sk_types.h b/include/c/sk_types.h index b12a1cf..de5dc88 100644 --- a/include/c/sk_types.h +++ b/include/c/sk_types.h @@ -795,6 +795,12 @@ typedef struct sk_svgcanvas_t sk_svgcanvas_t; typedef struct sk_3dview_t sk_3dview_t; +typedef enum { + TRIANGLES_SK_VERTEX_MODE, + TRIANGLE_STRIP_SK_VERTEX_MODE, + TRIANGLE_FAN_SK_VERTEX_MODE, +} sk_vertex_mode_t; + SK_C_PLUS_PLUS_END_GUARD #endif diff --git a/src/c/sk_canvas.cpp b/src/c/sk_canvas.cpp index 1e034af..ede65ba 100644 --- a/src/c/sk_canvas.cpp +++ b/src/c/sk_canvas.cpp @@ -283,3 +283,6 @@ void sk_canvas_draw_image_lattice(sk_canvas_t* ccanvas, AsCanvas(ccanvas)->drawImageLattice(AsImage(image), AsLattice(*lattice), AsRect(*dst), AsPaint(paint)); } +void sk_canvas_draw_vertices(sk_canvas_t* ccanvas, sk_vertex_mode_t vmode, int vertexCount, const sk_point_t* vertices, const sk_point_t* texs, const sk_color_t* colors, sk_blendmode_t mode, const uint16_t* indices, int indexCount, const sk_paint_t* paint) { + AsCanvas(ccanvas)->drawVertices((SkCanvas::VertexMode)vmode, vertexCount, AsPoint(vertices), AsPoint(texs), colors, (SkBlendMode)mode, indices, indexCount, AsPaint(*paint)); +} diff --git a/src/c/sk_enums.cpp b/src/c/sk_enums.cpp index 4620996..b0c78c3 100644 --- a/src/c/sk_enums.cpp +++ b/src/c/sk_enums.cpp @@ -380,4 +380,9 @@ static_assert ((int)SkMatrix44::TypeMask::kScale_Mask == (int)SCALE_SK_M static_assert ((int)SkMatrix44::TypeMask::kAffine_Mask == (int)AFFINE_SK_MATRIX44_TYPE_MASK, ASSERT_MSG(SkMatrix44::TypeMask, sk_matrix44_type_mask_t)); static_assert ((int)SkMatrix44::TypeMask::kPerspective_Mask == (int)PERSPECTIVE_SK_MATRIX44_TYPE_MASK, ASSERT_MSG(SkMatrix44::TypeMask, sk_matrix44_type_mask_t)); +// sk_vertex_mode_t +static_assert ((int)SkCanvas::VertexMode::kTriangles_VertexMode == (int)TRIANGLES_SK_VERTEX_MODE, ASSERT_MSG(SkCanvas::VertexMode, sk_vertex_mode_t)); +static_assert ((int)SkCanvas::VertexMode::kTriangleStrip_VertexMode == (int)TRIANGLE_STRIP_SK_VERTEX_MODE, ASSERT_MSG(SkCanvas::VertexMode, sk_vertex_mode_t)); +static_assert ((int)SkCanvas::VertexMode::kTriangleFan_VertexMode == (int)TRIANGLE_FAN_SK_VERTEX_MODE, ASSERT_MSG(SkCanvas::VertexMode, sk_vertex_mode_t)); + #endif -- 2.7.4