// 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. #include "flutter/lib/gpu/host_buffer.h" #include "impeller/core/host_buffer.h" #include "impeller/core/platform.h" #include "third_party/tonic/typed_data/dart_byte_data.h" namespace flutter { IMPLEMENT_WRAPPERTYPEINFO(gpu, HostBuffer); HostBuffer::HostBuffer() : host_buffer_(impeller::HostBuffer::Create()) {} HostBuffer::~HostBuffer() = default; size_t HostBuffer::EmplaceBytes(const tonic::DartByteData& byte_data) { auto view = host_buffer_->Emplace(byte_data.data(), byte_data.length_in_bytes(), impeller::DefaultUniformAlignment()); return view.range.offset; } } // namespace flutter //---------------------------------------------------------------------------- /// Exports /// void InternalFlutterGpu_HostBuffer_Initialize(Dart_Handle wrapper) { auto res = fml::MakeRefCounted(); res->AssociateWithDartWrapper(wrapper); } size_t InternalFlutterGpu_HostBuffer_EmplaceBytes(flutter::HostBuffer* wrapper, Dart_Handle byte_data) { return wrapper->EmplaceBytes(tonic::DartByteData(byte_data)); }