blob: b88654ce9e552661db0cea4f5894100a7c28d888 [file] [log] [blame]
// 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_