29 tonic::Float32List positions(positions_handle);
30 tonic::Float32List texture_coordinates(texture_coordinates_handle);
31 tonic::Int32List colors(colors_handle);
32 tonic::Uint16List indices(indices_handle);
34 if (!positions.data()) {
39 if (texture_coordinates.data()) {
46 indices.num_elements());
48 if (!builder.is_valid()) {
53 builder.store_vertices(positions.data());
55 if (texture_coordinates.data()) {
57 FML_DCHECK(positions.num_elements() == texture_coordinates.num_elements());
58 builder.store_texture_coordinates(texture_coordinates.data());
63 FML_DCHECK(positions.num_elements() / 2 == colors.num_elements());
64 builder.store_colors(
reinterpret_cast<const SkColor*
>(colors.data()));
67 if (indices.data() && indices.num_elements() > 0) {
68 builder.store_indices(indices.data());
72 texture_coordinates.Release();
76 auto vertices = fml::MakeRefCounted<Vertices>();
77 vertices->vertices_ = builder.build();
78 vertices->AssociateWithDartWrapper(vertices_handle);
static bool init(Dart_Handle vertices_handle, DlVertexMode vertex_mode, Dart_Handle positions_handle, Dart_Handle texture_coordinates_handle, Dart_Handle colors_handle, Dart_Handle indices_handle)