Fix setting mesh blend shape properties in dummy mesh storage

This commit is contained in:
nikitalita
2025-12-26 12:44:22 -08:00
parent e2a10cd46f
commit 84742563f8

View File

@@ -69,7 +69,11 @@ public:
virtual void mesh_initialize(RID p_rid) override;
virtual void mesh_free(RID p_rid) override;
virtual void mesh_set_blend_shape_count(RID p_mesh, int p_blend_shape_count) override {}
virtual void mesh_set_blend_shape_count(RID p_mesh, int p_blend_shape_count) override {
DummyMesh *m = mesh_owner.get_or_null(p_mesh);
ERR_FAIL_NULL(m);
m->blend_shape_count = p_blend_shape_count;
}
virtual bool mesh_needs_instance(RID p_mesh, bool p_has_skeleton) override { return false; }
virtual void mesh_add_surface(RID p_mesh, const RS::SurfaceData &p_surface) override {
@@ -95,10 +99,23 @@ public:
m->dependency.changed_notify(Dependency::DEPENDENCY_CHANGED_MESH);
}
virtual int mesh_get_blend_shape_count(RID p_mesh) const override { return 0; }
virtual int mesh_get_blend_shape_count(RID p_mesh) const override {
DummyMesh *m = mesh_owner.get_or_null(p_mesh);
ERR_FAIL_NULL_V(m, 0);
return m->blend_shape_count;
}
virtual void mesh_set_blend_shape_mode(RID p_mesh, RS::BlendShapeMode p_mode) override {}
virtual RS::BlendShapeMode mesh_get_blend_shape_mode(RID p_mesh) const override { return RS::BLEND_SHAPE_MODE_NORMALIZED; }
virtual void mesh_set_blend_shape_mode(RID p_mesh, RS::BlendShapeMode p_mode) override {
DummyMesh *m = mesh_owner.get_or_null(p_mesh);
ERR_FAIL_NULL(m);
m->blend_shape_mode = p_mode;
}
virtual RS::BlendShapeMode mesh_get_blend_shape_mode(RID p_mesh) const override {
DummyMesh *m = mesh_owner.get_or_null(p_mesh);
ERR_FAIL_NULL_V(m, RS::BLEND_SHAPE_MODE_NORMALIZED);
return m->blend_shape_mode;
}
virtual void mesh_surface_update_vertex_region(RID p_mesh, int p_surface, int p_offset, const Vector<uint8_t> &p_data) override {}
virtual void mesh_surface_update_attribute_region(RID p_mesh, int p_surface, int p_offset, const Vector<uint8_t> &p_data) override {}