From 84742563f8bcbd525d8accbc2c05b46a6bc5ada0 Mon Sep 17 00:00:00 2001 From: nikitalita <69168929+nikitalita@users.noreply.github.com> Date: Fri, 26 Dec 2025 12:44:22 -0800 Subject: [PATCH] Fix setting mesh blend shape properties in dummy mesh storage --- .../rendering/dummy/storage/mesh_storage.h | 25 ++++++++++++++++--- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/servers/rendering/dummy/storage/mesh_storage.h b/servers/rendering/dummy/storage/mesh_storage.h index a660a5444519..0871c91ade58 100644 --- a/servers/rendering/dummy/storage/mesh_storage.h +++ b/servers/rendering/dummy/storage/mesh_storage.h @@ -69,7 +69,11 @@ class MeshStorage : public RendererMeshStorage { 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 @@ class MeshStorage : public RendererMeshStorage { 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 { + DummyMesh *m = mesh_owner.get_or_null(p_mesh); + ERR_FAIL_NULL(m); + m->blend_shape_mode = p_mode; + } - 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 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 &p_data) override {} virtual void mesh_surface_update_attribute_region(RID p_mesh, int p_surface, int p_offset, const Vector &p_data) override {}