diff options
Diffstat (limited to 'servers/rendering_server.h')
-rw-r--r-- | servers/rendering_server.h | 12 |
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); |