Flutter Engine
The Flutter Engine
Classes | Public Member Functions | List of all members
impeller::scene::importer::UnskinnedVerticesBuilder Class Referencefinal

#include <vertices_builder.h>

Inheritance diagram for impeller::scene::importer::UnskinnedVerticesBuilder:
impeller::scene::importer::VerticesBuilder

Classes

struct  Vertex
 

Public Member Functions

 UnskinnedVerticesBuilder ()
 
virtual ~UnskinnedVerticesBuilder () 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
 
- Public Member Functions inherited from impeller::scene::importer::VerticesBuilder
 VerticesBuilder ()
 
virtual ~VerticesBuilder ()
 
virtual void WriteFBVertices (fb::MeshPrimitiveT &primitive) const =0
 
virtual void SetAttributeFromBuffer (AttributeType attribute, ComponentType component_type, const void *buffer_start, size_t attribute_stride_bytes, size_t attribute_count)=0
 

Additional Inherited Members

- Public Types inherited from impeller::scene::importer::VerticesBuilder
enum class  ComponentType {
  kSignedByte = 5120 , kUnsignedByte , kSignedShort , kUnsignedShort ,
  kSignedInt , kUnsignedInt , kFloat
}
 
enum class  AttributeType {
  kPosition , kNormal , kTangent , kTextureCoords ,
  kColor , kJoints , kWeights
}
 
using ComponentConverter = std::function< Scalar(const void *source, size_t byte_offset, bool normalized)>
 
using AttributeWriter = std::function< void(Scalar *destination, const void *source, const ComponentProperties &component_props, const AttributeProperties &attribute_props)>
 
- Static Public Member Functions inherited from impeller::scene::importer::VerticesBuilder
static std::unique_ptr< VerticesBuilderMakeUnskinned ()
 
static std::unique_ptr< VerticesBuilderMakeSkinned ()
 
- Static Protected Member Functions inherited from impeller::scene::importer::VerticesBuilder
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)
 

Detailed Description

UnskinnedVerticesBuilder

Definition at line 103 of file vertices_builder.h.

Constructor & Destructor Documentation

◆ UnskinnedVerticesBuilder()

impeller::scene::importer::UnskinnedVerticesBuilder::UnskinnedVerticesBuilder ( )
default

◆ ~UnskinnedVerticesBuilder()

impeller::scene::importer::UnskinnedVerticesBuilder::~UnskinnedVerticesBuilder ( )
overridevirtualdefault

Member Function Documentation

◆ SetAttributeFromBuffer()

void impeller::scene::importer::UnskinnedVerticesBuilder::SetAttributeFromBuffer ( AttributeType  attribute,
ComponentType  component_type,
const void *  buffer_start,
size_t  attribute_stride_bytes,
size_t  attribute_count 
)
overridevirtual

Implements impeller::scene::importer::VerticesBuilder.

Definition at line 180 of file vertices_builder.cc.

185 {
186 if (attribute_count > vertices_.size()) {
187 vertices_.resize(attribute_count, Vertex());
188 }
189 WriteAttribute(vertices_.data(), // destination
190 sizeof(Vertex), // destination_stride_bytes
191 attribute, // attribute
192 component_type, // component_type
193 buffer_start, // source
194 attribute_stride_bytes, // attribute_stride_bytes
195 attribute_count); // attribute_count
196}
GrTriangulator::Vertex Vertex
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)

◆ WriteFBVertices()

void impeller::scene::importer::UnskinnedVerticesBuilder::WriteFBVertices ( fb::MeshPrimitiveT &  primitive) const
overridevirtual

Implements impeller::scene::importer::VerticesBuilder.

Definition at line 168 of file vertices_builder.cc.

169 {
170 auto vertex_buffer = fb::UnskinnedVertexBufferT();
171 vertex_buffer.vertices.resize(0);
172 for (auto& v : vertices_) {
173 vertex_buffer.vertices.push_back(fb::Vertex(
174 ToFBVec3(v.position), ToFBVec3(v.normal), ToFBVec4(v.tangent),
175 ToFBVec2(v.texture_coords), ToFBColor(v.color)));
176 }
177 primitive.vertices.Set(std::move(vertex_buffer));
178}
fb::Vec3 ToFBVec3(const Vector3 v)
Definition: conversions.cc:74
fb::Vec4 ToFBVec4(const Vector4 v)
Definition: conversions.cc:78
fb::Vec2 ToFBVec2(const Vector2 v)
Definition: conversions.cc:70
fb::Color ToFBColor(const Color c)
Definition: conversions.cc:82

The documentation for this class was generated from the following files: