5#ifndef FLUTTER_IMPELLER_SCENE_IMPORTER_VERTICES_BUILDER_H_
6#define FLUTTER_IMPELLER_SCENE_IMPORTER_VERTICES_BUILDER_H_
11#include "flutter/fml/macros.h"
13#include "impeller/scene/importer/scene_flatbuffers.h"
27 static std::unique_ptr<VerticesBuilder>
MakeSkinned();
50 Scalar(
const void*
source,
size_t byte_offset,
bool normalized)>;
58 std::function<void(
Scalar* destination,
77 const void* buffer_start,
78 size_t attribute_stride_bytes,
79 size_t attribute_count) = 0;
83 size_t destination_stride_bytes,
87 size_t attribute_stride_bytes,
88 size_t attribute_count);
124 const void* buffer_start,
125 size_t attribute_stride_bytes,
126 size_t attribute_count)
override;
129 std::vector<Vertex> vertices_;
158 const void* buffer_start,
159 size_t attribute_stride_bytes,
160 size_t attribute_count)
override;
163 std::vector<Vertex> vertices_;
virtual ~SkinnedVerticesBuilder() override
void WriteFBVertices(fb::MeshPrimitiveT &primitive) const override
void SetAttributeFromBuffer(AttributeType attribute, ComponentType component_type, const void *buffer_start, size_t attribute_stride_bytes, size_t attribute_count) override
void SetAttributeFromBuffer(AttributeType attribute, ComponentType component_type, const void *buffer_start, size_t attribute_stride_bytes, size_t attribute_count) override
virtual ~UnskinnedVerticesBuilder() override
UnskinnedVerticesBuilder()
void WriteFBVertices(fb::MeshPrimitiveT &primitive) const override
virtual ~VerticesBuilder()
std::function< Scalar(const void *source, size_t byte_offset, bool normalized)> ComponentConverter
virtual void SetAttributeFromBuffer(AttributeType attribute, ComponentType component_type, const void *buffer_start, size_t attribute_stride_bytes, size_t attribute_count)=0
static std::unique_ptr< VerticesBuilder > MakeUnskinned()
static std::unique_ptr< VerticesBuilder > MakeSkinned()
static void WriteAttribute(void *destination, size_t destination_stride_bytes, AttributeType attribute, ComponentType component_type, const void *source, size_t attribute_stride_bytes, size_t attribute_count)
std::function< void(Scalar *destination, const void *source, const ComponentProperties &component_props, const AttributeProperties &attribute_props)> AttributeWriter
virtual void WriteFBVertices(fb::MeshPrimitiveT &primitive) const =0
static constexpr Color White()
UnskinnedVerticesBuilder::Vertex vertex
AttributeWriter write_proc
ComponentConverter convert_proc