10 #include "flutter/fml/logging.h"
19 return std::shared_ptr<HostBuffer>(
new HostBuffer());
22 HostBuffer::HostBuffer() =
default;
27 label_ = std::move(label);
33 if (align == 0 || (
GetLength() % align) == 0) {
49 if (!
Truncate(old_length + length)) {
54 ::memmove(
GetBuffer() + old_length, buffer, length);
56 return BufferView{shared_from_this(),
GetBuffer(), Range{old_length, length}};
66 if (!
Truncate(old_length + length)) {
75 std::shared_ptr<const DeviceBuffer> HostBuffer::GetDeviceBuffer(
77 if (generation_ == device_buffer_generation_) {
78 return device_buffer_;
84 new_buffer->SetLabel(label_);
85 device_buffer_generation_ = generation_;
86 device_buffer_ = std::move(new_buffer);
87 return device_buffer_;
92 device_buffer_ =
nullptr;
94 FML_CHECK(did_truncate);