Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Classes | Public Types | Public Member Functions | Static Public Member Functions | Static Protected Member Functions | List of all members
impeller::scene::importer::VerticesBuilder Class Referenceabstract

#include <vertices_builder.h>

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

Classes

struct  AttributeProperties
 
struct  ComponentProperties
 

Public Types

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)>
 

Public Member Functions

 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
 

Static Public Member Functions

static std::unique_ptr< VerticesBuilderMakeUnskinned ()
 
static std::unique_ptr< VerticesBuilderMakeSkinned ()
 

Static Protected Member Functions

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

VerticesBuilder

Definition at line 23 of file vertices_builder.h.

Member Typedef Documentation

◆ AttributeWriter

using impeller::scene::importer::VerticesBuilder::AttributeWriter = std::function<void(Scalar* destination, const void* source, const ComponentProperties& component_props, const AttributeProperties& attribute_props)>

Definition at line 57 of file vertices_builder.h.

◆ ComponentConverter

using impeller::scene::importer::VerticesBuilder::ComponentConverter = std::function< Scalar(const void* source, size_t byte_offset, bool normalized)>

Definition at line 49 of file vertices_builder.h.

Member Enumeration Documentation

◆ AttributeType

◆ ComponentType

Constructor & Destructor Documentation

◆ VerticesBuilder()

impeller::scene::importer::VerticesBuilder::VerticesBuilder ( )
default

◆ ~VerticesBuilder()

impeller::scene::importer::VerticesBuilder::~VerticesBuilder ( )
virtualdefault

Member Function Documentation

◆ MakeSkinned()

std::unique_ptr< VerticesBuilder > impeller::scene::importer::VerticesBuilder::MakeSkinned ( )
static

Definition at line 29 of file vertices_builder.cc.

29 {
30 return std::make_unique<SkinnedVerticesBuilder>();
31}

◆ MakeUnskinned()

std::unique_ptr< VerticesBuilder > impeller::scene::importer::VerticesBuilder::MakeUnskinned ( )
static

VerticesBuilder

Definition at line 25 of file vertices_builder.cc.

25 {
26 return std::make_unique<UnskinnedVerticesBuilder>();
27}

◆ SetAttributeFromBuffer()

virtual void impeller::scene::importer::VerticesBuilder::SetAttributeFromBuffer ( AttributeType  attribute,
ComponentType  component_type,
const void *  buffer_start,
size_t  attribute_stride_bytes,
size_t  attribute_count 
)
pure virtual

◆ WriteAttribute()

void impeller::scene::importer::VerticesBuilder::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 
)
staticprotected

Definition at line 140 of file vertices_builder.cc.

146 {
147 const ComponentProperties& component_props = kComponentTypes[component_type];
148 const AttributeProperties& attribute_props = kAttributeTypes[attribute];
149 for (size_t i = 0; i < attribute_count; i++) {
150 const uint8_t* src =
151 reinterpret_cast<const uint8_t*>(source) + attribute_stride_bytes * i;
152 uint8_t* dst = reinterpret_cast<uint8_t*>(destination) +
153 i * destination_stride_bytes + attribute_props.offset_bytes;
154
155 attribute_props.write_proc(reinterpret_cast<Scalar*>(dst), src,
156 component_props, attribute_props);
157 }
158}
SkBitmap source
Definition examples.cpp:28
dst
Definition cp.py:12
static std::map< VerticesBuilder::ComponentType, VerticesBuilder::ComponentProperties > kComponentTypes
float Scalar
Definition scalar.h:18

◆ WriteFBVertices()

virtual void impeller::scene::importer::VerticesBuilder::WriteFBVertices ( fb::MeshPrimitiveT &  primitive) const
pure virtual

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