summaryrefslogtreecommitdiffstats
path: root/servers/rendering_server.h
diff options
context:
space:
mode:
Diffstat (limited to 'servers/rendering_server.h')
-rw-r--r--servers/rendering_server.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/servers/rendering_server.h b/servers/rendering_server.h
index 8450cb0198..14d98c684b 100644
--- a/servers/rendering_server.h
+++ b/servers/rendering_server.h
@@ -426,6 +426,11 @@ public:
MULTIMESH_TRANSFORM_3D,
};
+ enum MultimeshPhysicsInterpolationQuality {
+ MULTIMESH_INTERP_QUALITY_FAST,
+ MULTIMESH_INTERP_QUALITY_HIGH,
+ };
+
virtual void multimesh_allocate_data(RID p_multimesh, int p_instances, MultimeshTransformFormat p_transform_format, bool p_use_colors = false, bool p_use_custom_data = false) = 0;
virtual int multimesh_get_instance_count(RID p_multimesh) const = 0;
@@ -449,6 +454,12 @@ public:
virtual void multimesh_set_buffer(RID p_multimesh, const Vector<float> &p_buffer) = 0;
virtual Vector<float> multimesh_get_buffer(RID p_multimesh) const = 0;
+ // Interpolation.
+ virtual void multimesh_set_buffer_interpolated(RID p_multimesh, const Vector<float> &p_buffer_curr, const Vector<float> &p_buffer_prev) = 0;
+ virtual void multimesh_set_physics_interpolated(RID p_multimesh, bool p_interpolated) = 0;
+ virtual void multimesh_set_physics_interpolation_quality(RID p_multimesh, MultimeshPhysicsInterpolationQuality p_quality) = 0;
+ virtual void multimesh_instance_reset_physics_interpolation(RID p_multimesh, int p_index) = 0;
+
virtual void multimesh_set_visible_instances(RID p_multimesh, int p_visible) = 0;
virtual int multimesh_get_visible_instances(RID p_multimesh) const = 0;
@@ -1788,6 +1799,7 @@ VARIANT_ENUM_CAST(RenderingServer::ArrayCustomFormat);
VARIANT_ENUM_CAST(RenderingServer::PrimitiveType);
VARIANT_ENUM_CAST(RenderingServer::BlendShapeMode);
VARIANT_ENUM_CAST(RenderingServer::MultimeshTransformFormat);
+VARIANT_ENUM_CAST(RenderingServer::MultimeshPhysicsInterpolationQuality);
VARIANT_ENUM_CAST(RenderingServer::LightType);
VARIANT_ENUM_CAST(RenderingServer::LightParam);
VARIANT_ENUM_CAST(RenderingServer::LightBakeMode);