part of dart._skwasm_impl; // Copyright 2013 The Flutter Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // ignore_for_file: avoid_unused_constructor_parameters class SkwasmVertices extends SkwasmObjectWrapper implements ui.Vertices { factory SkwasmVertices( ui.VertexMode mode, List positions, { List? textureCoordinates, List? colors, List? indices, }) => withStackScope((StackScope scope) { final RawPointArray rawPositions = scope.convertPointArrayToNative(positions); final RawPointArray rawTextureCoordinates = textureCoordinates != null ? scope.convertPointArrayToNative(textureCoordinates) : nullptr; final RawColorArray rawColors = colors != null ? scope.convertColorArrayToNative(colors) : nullptr; final Pointer rawIndices = indices != null ? scope.convertIntsToUint16Native(indices) : nullptr; final int indexCount = indices != null ? indices.length : 0; return SkwasmVertices._( verticesCreate( mode.index, positions.length, rawPositions, rawTextureCoordinates, rawColors, indexCount, rawIndices, ), ); }); factory SkwasmVertices.raw( ui.VertexMode mode, Float32List positions, { Float32List? textureCoordinates, Int32List? colors, Uint16List? indices, }) => withStackScope((StackScope scope) { final RawPointArray rawPositions = scope.convertDoublesToNative(positions); final RawPointArray rawTextureCoordinates = textureCoordinates != null ? scope.convertDoublesToNative(textureCoordinates) : nullptr; final RawColorArray rawColors = colors != null ? scope.convertIntsToUint32Native(colors) : nullptr; final Pointer rawIndices = indices != null ? scope.convertIntsToUint16Native(indices) : nullptr; final int indexCount = indices != null ? indices.length : 0; return SkwasmVertices._( verticesCreate( mode.index, positions.length ~/ 2, rawPositions, rawTextureCoordinates, rawColors, indexCount, rawIndices, ), ); }); SkwasmVertices._(VerticesHandle handle) : super(handle, _registry); static final SkwasmFinalizationRegistry _registry = SkwasmFinalizationRegistry(verticesDispose); }