Flutter Engine
 
Loading...
Searching...
No Matches
buffer_view.cc
Go to the documentation of this file.
1// Copyright 2013 The Flutter Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
6
7namespace impeller {
8
9BufferView::BufferView() : buffer_(nullptr), raw_buffer_(nullptr), range_({}) {}
10
12 : buffer_(), raw_buffer_(buffer), range_(range) {}
13
14BufferView::BufferView(std::shared_ptr<const DeviceBuffer> buffer, Range range)
15 : buffer_(std::move(buffer)), raw_buffer_(nullptr), range_(range) {}
16
18 return raw_buffer_ ? raw_buffer_ : buffer_.get();
19}
20
21std::shared_ptr<const DeviceBuffer> BufferView::TakeBuffer() {
22 if (buffer_) {
23 raw_buffer_ = buffer_.get();
24 return std::move(buffer_);
25 } else {
26 return nullptr;
27 }
28}
29
30BufferView::operator bool() const {
31 return buffer_ || raw_buffer_;
32}
33
34} // namespace impeller
Definition ref_ptr.h:261
std::shared_ptr< const DeviceBuffer > TakeBuffer()
const DeviceBuffer * GetBuffer() const