summaryrefslogtreecommitdiffstats
path: root/drivers/gles3/storage/mesh_storage.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gles3/storage/mesh_storage.h')
-rw-r--r--drivers/gles3/storage/mesh_storage.h56
1 files changed, 30 insertions, 26 deletions
diff --git a/drivers/gles3/storage/mesh_storage.h b/drivers/gles3/storage/mesh_storage.h
index d246e7725c..a2edbb9c48 100644
--- a/drivers/gles3/storage/mesh_storage.h
+++ b/drivers/gles3/storage/mesh_storage.h
@@ -205,6 +205,8 @@ struct MultiMesh {
bool dirty = false;
MultiMesh *dirty_list = nullptr;
+ RendererMeshStorage::MultiMeshInterpolator interpolator;
+
Dependency dependency;
};
@@ -493,32 +495,34 @@ public:
MultiMesh *get_multimesh(RID p_rid) { return multimesh_owner.get_or_null(p_rid); };
bool owns_multimesh(RID p_rid) { return multimesh_owner.owns(p_rid); };
- virtual RID multimesh_allocate() override;
- virtual void multimesh_initialize(RID p_rid) override;
- virtual void multimesh_free(RID p_rid) override;
- virtual void multimesh_allocate_data(RID p_multimesh, int p_instances, RS::MultimeshTransformFormat p_transform_format, bool p_use_colors = false, bool p_use_custom_data = false) override;
- virtual int multimesh_get_instance_count(RID p_multimesh) const override;
-
- virtual void multimesh_set_mesh(RID p_multimesh, RID p_mesh) override;
- virtual void multimesh_instance_set_transform(RID p_multimesh, int p_index, const Transform3D &p_transform) override;
- virtual void multimesh_instance_set_transform_2d(RID p_multimesh, int p_index, const Transform2D &p_transform) override;
- virtual void multimesh_instance_set_color(RID p_multimesh, int p_index, const Color &p_color) override;
- virtual void multimesh_instance_set_custom_data(RID p_multimesh, int p_index, const Color &p_color) override;
-
- virtual RID multimesh_get_mesh(RID p_multimesh) const override;
- virtual void multimesh_set_custom_aabb(RID p_multimesh, const AABB &p_aabb) override;
- virtual AABB multimesh_get_custom_aabb(RID p_multimesh) const override;
- virtual AABB multimesh_get_aabb(RID p_multimesh) const override;
-
- virtual Transform3D multimesh_instance_get_transform(RID p_multimesh, int p_index) const override;
- virtual Transform2D multimesh_instance_get_transform_2d(RID p_multimesh, int p_index) const override;
- virtual Color multimesh_instance_get_color(RID p_multimesh, int p_index) const override;
- virtual Color multimesh_instance_get_custom_data(RID p_multimesh, int p_index) const override;
- virtual void multimesh_set_buffer(RID p_multimesh, const Vector<float> &p_buffer) override;
- virtual Vector<float> multimesh_get_buffer(RID p_multimesh) const override;
-
- virtual void multimesh_set_visible_instances(RID p_multimesh, int p_visible) override;
- virtual int multimesh_get_visible_instances(RID p_multimesh) const override;
+ virtual RID _multimesh_allocate() override;
+ virtual void _multimesh_initialize(RID p_rid) override;
+ virtual void _multimesh_free(RID p_rid) override;
+ virtual void _multimesh_allocate_data(RID p_multimesh, int p_instances, RS::MultimeshTransformFormat p_transform_format, bool p_use_colors = false, bool p_use_custom_data = false) override;
+ virtual int _multimesh_get_instance_count(RID p_multimesh) const override;
+
+ virtual void _multimesh_set_mesh(RID p_multimesh, RID p_mesh) override;
+ virtual void _multimesh_instance_set_transform(RID p_multimesh, int p_index, const Transform3D &p_transform) override;
+ virtual void _multimesh_instance_set_transform_2d(RID p_multimesh, int p_index, const Transform2D &p_transform) override;
+ virtual void _multimesh_instance_set_color(RID p_multimesh, int p_index, const Color &p_color) override;
+ virtual void _multimesh_instance_set_custom_data(RID p_multimesh, int p_index, const Color &p_color) override;
+
+ virtual RID _multimesh_get_mesh(RID p_multimesh) const override;
+ virtual void _multimesh_set_custom_aabb(RID p_multimesh, const AABB &p_aabb) override;
+ virtual AABB _multimesh_get_custom_aabb(RID p_multimesh) const override;
+ virtual AABB _multimesh_get_aabb(RID p_multimesh) const override;
+
+ virtual Transform3D _multimesh_instance_get_transform(RID p_multimesh, int p_index) const override;
+ virtual Transform2D _multimesh_instance_get_transform_2d(RID p_multimesh, int p_index) const override;
+ virtual Color _multimesh_instance_get_color(RID p_multimesh, int p_index) const override;
+ virtual Color _multimesh_instance_get_custom_data(RID p_multimesh, int p_index) const override;
+ virtual void _multimesh_set_buffer(RID p_multimesh, const Vector<float> &p_buffer) override;
+ virtual Vector<float> _multimesh_get_buffer(RID p_multimesh) const override;
+
+ virtual void _multimesh_set_visible_instances(RID p_multimesh, int p_visible) override;
+ virtual int _multimesh_get_visible_instances(RID p_multimesh) const override;
+
+ virtual MultiMeshInterpolator *_multimesh_get_interpolator(RID p_multimesh) const override;
void _update_dirty_multimeshes();