| // 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. | |
| #ifndef FLUTTER_IMPELLER_CORE_VERTEX_BUFFER_H_ | |
| #define FLUTTER_IMPELLER_CORE_VERTEX_BUFFER_H_ | |
| #include "impeller/core/buffer_view.h" | |
| #include "impeller/core/formats.h" | |
| namespace impeller { | |
| struct VertexBuffer { | |
| BufferView vertex_buffer; | |
| //---------------------------------------------------------------------------- | |
| /// The index buffer binding used by the vertex shader stage. | |
| BufferView index_buffer; | |
| //---------------------------------------------------------------------------- | |
| /// The total count of vertices, either in the vertex_buffer if the | |
| /// index_type is IndexType::kNone or in the index_buffer otherwise. | |
| size_t vertex_count = 0u; | |
| //---------------------------------------------------------------------------- | |
| /// The type of indices in the index buffer. The indices must be tightly | |
| /// packed in the index buffer. | |
| /// | |
| IndexType index_type = IndexType::kUnknown; | |
| constexpr explicit operator bool() const { | |
| return static_cast<bool>(vertex_buffer) && | |
| (index_type == IndexType::kNone || static_cast<bool>(index_buffer)); | |
| } | |
| }; | |
| } // namespace impeller | |
| #endif // FLUTTER_IMPELLER_CORE_VERTEX_BUFFER_H_ |