| Flutter Impeller |

Public Member Functions | List of all members
impeller::scene::SkinnedVertexBufferGeometry Class Referencefinal

`#include <geometry.h>`

Inheritance diagram for impeller::scene::SkinnedVertexBufferGeometry:

## Public Member Functions
| SkinnedVertexBufferGeometry ()
| ~SkinnedVertexBufferGeometry () override
void | SetVertexBuffer (VertexBuffer vertex_buffer)
GeometryType | GetGeometryType () const override
VertexBuffer | GetVertexBuffer (Allocator &allocator) const override
void | BindToCommand (const SceneContext &scene_context, HostBuffer &buffer, const Matrix &transform, RenderPass &pass) const override
void | SetJointsTexture (const std::shared_ptr< Texture > &texture) override
Public Member Functions inherited from impeller::scene::Geometry
virtual | ~Geometry ()

## Additional Inherited Members
Static Public Member Functions inherited from impeller::scene::Geometry
static std::shared_ptr< CuboidGeometry > | MakeCuboid (Vector3 size)
static std::shared_ptr< Geometry > | MakeVertexBuffer (VertexBuffer vertex_buffer, bool is_skinned)
static std::shared_ptr< Geometry > | MakeFromFlatbuffer (const fb::MeshPrimitive &mesh, Allocator &allocator)

## Detailed Description

Definition at line 108 of file geometry.h.

## Constructor & Destructor Documentation

## ◆ SkinnedVertexBufferGeometry()

impeller::scene::SkinnedVertexBufferGeometry::SkinnedVertexBufferGeometry | ( |  | ) |
| default

SkinnedVertexBufferGeometry

## ◆ ~SkinnedVertexBufferGeometry()

impeller::scene::SkinnedVertexBufferGeometry::~SkinnedVertexBufferGeometry | ( |  | ) |
| override default

## Member Function Documentation

## ◆ BindToCommand()

void impeller::scene::SkinnedVertexBufferGeometry::BindToCommand | ( | const SceneContext & | scene_context,
|  | HostBuffer & | buffer,
|  | const Matrix & | transform,
|  | RenderPass & | pass
| ) |  | const
| override virtual

Implements impeller::scene::Geometry.

Definition at line 237 of file geometry.cc.

241 {
242 pass.SetVertexBuffer(
243 GetVertexBuffer(*scene_context.GetContext()->GetResourceAllocator()));
244
245 SamplerDescriptor sampler_desc;
246 sampler_desc.min_filter = MinMagFilter::kNearest;
247 sampler_desc.mag_filter = MinMagFilter::kNearest;
248 sampler_desc.mip_filter = MipFilter::kNearest;
249 sampler_desc.width_address_mode = SamplerAddressMode::kRepeat;
250 sampler_desc.label = "NN Repeat";
251
252 SkinnedVertexShader::BindJointsTexture(
253 pass,
254 joints_texture_ ? joints_texture_ : scene_context.GetPlaceholderTexture(),
255 scene_context.GetContext()->GetSamplerLibrary()->GetSampler(
256 sampler_desc));
257
258 SkinnedVertexShader::FrameInfo info;
259 info.mvp = transform;
260 info.enable_skinning = joints_texture_ ? 1 : 0;
261 info.joint_texture_size =
262 joints_texture_ ? joints_texture_->GetSize().width : 1;
263 SkinnedVertexShader::BindFrameInfo(pass, buffer.EmplaceUniform(info));
264 }

References impeller::HostBuffer::EmplaceUniform(), impeller::scene::SceneContext::GetContext(), impeller::scene::SceneContext::GetPlaceholderTexture(), GetVertexBuffer(), impeller::kNearest, impeller::kRepeat, impeller::SamplerDescriptor::label, impeller::SamplerDescriptor::mag_filter, impeller::SamplerDescriptor::min_filter, impeller::SamplerDescriptor::mip_filter, impeller::RenderPass::SetVertexBuffer(), transform, and impeller::SamplerDescriptor::width_address_mode.

## ◆ GetGeometryType()

GeometryType impeller::scene::SkinnedVertexBufferGeometry::GetGeometryType | ( |  | ) | const
| override virtual

Implements impeller::scene::Geometry.

Definition at line 226 of file geometry.cc.

226 {
227 return GeometryType::kSkinned;
228 }

References impeller::scene::kSkinned.

## ◆ GetVertexBuffer()

VertexBuffer impeller::scene::SkinnedVertexBufferGeometry::GetVertexBuffer | ( | Allocator & | allocator | ) | const
| override virtual

Implements impeller::scene::Geometry.

Definition at line 231 of file geometry.cc.

232 {
233 return vertex_buffer_;
234 }

Referenced by BindToCommand().

## ◆ SetJointsTexture()

void impeller::scene::SkinnedVertexBufferGeometry::SetJointsTexture | ( | const std::shared_ptr< Texture > & | texture | ) |
| override virtual

Reimplemented from impeller::scene::Geometry.

Definition at line 267 of file geometry.cc.

268 {
269 joints_texture_ = texture;
270 }

## ◆ SetVertexBuffer()

void impeller::scene::SkinnedVertexBufferGeometry::SetVertexBuffer | ( | VertexBuffer | vertex_buffer | ) |

Definition at line 221 of file geometry.cc.

221 {
222 vertex_buffer_ = std::move(vertex_buffer);
223 }

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

- impeller/scene/geometry.h
- impeller/scene/geometry.cc

impeller::MinMagFilter::kNearest
@ kNearest
Select nearest to the sample point. Most widely supported.
impeller::MipFilter::kNearest
@ kNearest
The nearst mipmap level is selected.
impeller::scene::SkinnedVertexBufferGeometry::GetVertexBuffer
VertexBuffer GetVertexBuffer(Allocator &allocator) const override
Definition: geometry.cc:231
transform
Matrix transform
Definition: gaussian_blur_filter_contents.cc:231
impeller::scene::GeometryType::kSkinned
@ kSkinned
impeller::SamplerAddressMode::kRepeat
@ kRepeat