Support for CPU based particles, which aids compatibility with OpenGL ES 2.0
This commit is contained in:
parent
e19388df97
commit
7dcaabaf19
22 changed files with 2287 additions and 216 deletions
|
|
@ -282,19 +282,23 @@ public:
|
|||
|
||||
virtual RID multimesh_create() = 0;
|
||||
|
||||
virtual void multimesh_allocate(RID p_multimesh, int p_instances, VS::MultimeshTransformFormat p_transform_format, VS::MultimeshColorFormat p_color_format) = 0;
|
||||
virtual void multimesh_allocate(RID p_multimesh, int p_instances, VS::MultimeshTransformFormat p_transform_format, VS::MultimeshColorFormat p_color_format, VS::MultimeshCustomDataFormat p_data = VS::MULTIMESH_CUSTOM_DATA_NONE) = 0;
|
||||
virtual int multimesh_get_instance_count(RID p_multimesh) const = 0;
|
||||
|
||||
virtual void multimesh_set_mesh(RID p_multimesh, RID p_mesh) = 0;
|
||||
virtual void multimesh_instance_set_transform(RID p_multimesh, int p_index, const Transform &p_transform) = 0;
|
||||
virtual void multimesh_instance_set_transform_2d(RID p_multimesh, int p_index, const Transform2D &p_transform) = 0;
|
||||
virtual void multimesh_instance_set_color(RID p_multimesh, int p_index, const Color &p_color) = 0;
|
||||
virtual void multimesh_instance_set_custom_data(RID p_multimesh, int p_index, const Color &p_color) = 0;
|
||||
|
||||
virtual RID multimesh_get_mesh(RID p_multimesh) const = 0;
|
||||
|
||||
virtual Transform multimesh_instance_get_transform(RID p_multimesh, int p_index) const = 0;
|
||||
virtual Transform2D multimesh_instance_get_transform_2d(RID p_multimesh, int p_index) const = 0;
|
||||
virtual Color multimesh_instance_get_color(RID p_multimesh, int p_index) const = 0;
|
||||
virtual Color multimesh_instance_get_custom_data(RID p_multimesh, int p_index) const = 0;
|
||||
|
||||
virtual void multimesh_set_as_bulk_array(RID p_multimesh, const PoolVector<float> &p_array) = 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;
|
||||
|
|
|
|||
|
|
@ -97,6 +97,8 @@ void VisualServerRaster::draw(bool p_swap_buffers) {
|
|||
|
||||
changes = 0;
|
||||
|
||||
VS::get_singleton()->emit_signal("frame_pre_draw");
|
||||
|
||||
VSG::rasterizer->begin_frame();
|
||||
|
||||
VSG::scene->update_dirty_instances(); //update scene stuff
|
||||
|
|
@ -122,7 +124,7 @@ void VisualServerRaster::draw(bool p_swap_buffers) {
|
|||
frame_drawn_callbacks.pop_front();
|
||||
}
|
||||
|
||||
emit_signal("frame_drawn_in_thread");
|
||||
VS::get_singleton()->emit_signal("frame_post_draw");
|
||||
}
|
||||
void VisualServerRaster::sync() {
|
||||
}
|
||||
|
|
|
|||
|
|
@ -246,13 +246,14 @@ public:
|
|||
|
||||
BIND0R(RID, multimesh_create)
|
||||
|
||||
BIND4(multimesh_allocate, RID, int, MultimeshTransformFormat, MultimeshColorFormat)
|
||||
BIND5(multimesh_allocate, RID, int, MultimeshTransformFormat, MultimeshColorFormat, MultimeshCustomDataFormat)
|
||||
BIND1RC(int, multimesh_get_instance_count, RID)
|
||||
|
||||
BIND2(multimesh_set_mesh, RID, RID)
|
||||
BIND3(multimesh_instance_set_transform, RID, int, const Transform &)
|
||||
BIND3(multimesh_instance_set_transform_2d, RID, int, const Transform2D &)
|
||||
BIND3(multimesh_instance_set_color, RID, int, const Color &)
|
||||
BIND3(multimesh_instance_set_custom_data, RID, int, const Color &)
|
||||
|
||||
BIND1RC(RID, multimesh_get_mesh, RID)
|
||||
BIND1RC(AABB, multimesh_get_aabb, RID)
|
||||
|
|
@ -260,6 +261,9 @@ public:
|
|||
BIND2RC(Transform, multimesh_instance_get_transform, RID, int)
|
||||
BIND2RC(Transform2D, multimesh_instance_get_transform_2d, RID, int)
|
||||
BIND2RC(Color, multimesh_instance_get_color, RID, int)
|
||||
BIND2RC(Color, multimesh_instance_get_custom_data, RID, int)
|
||||
|
||||
BIND2(multimesh_set_as_bulk_array, RID, const PoolVector<float> &)
|
||||
|
||||
BIND2(multimesh_set_visible_instances, RID, int)
|
||||
BIND1RC(int, multimesh_get_visible_instances, RID)
|
||||
|
|
|
|||
|
|
@ -180,13 +180,14 @@ public:
|
|||
|
||||
FUNCRID(multimesh)
|
||||
|
||||
FUNC4(multimesh_allocate, RID, int, MultimeshTransformFormat, MultimeshColorFormat)
|
||||
FUNC5(multimesh_allocate, RID, int, MultimeshTransformFormat, MultimeshColorFormat, MultimeshCustomDataFormat)
|
||||
FUNC1RC(int, multimesh_get_instance_count, RID)
|
||||
|
||||
FUNC2(multimesh_set_mesh, RID, RID)
|
||||
FUNC3(multimesh_instance_set_transform, RID, int, const Transform &)
|
||||
FUNC3(multimesh_instance_set_transform_2d, RID, int, const Transform2D &)
|
||||
FUNC3(multimesh_instance_set_color, RID, int, const Color &)
|
||||
FUNC3(multimesh_instance_set_custom_data, RID, int, const Color &)
|
||||
|
||||
FUNC1RC(RID, multimesh_get_mesh, RID)
|
||||
FUNC1RC(AABB, multimesh_get_aabb, RID)
|
||||
|
|
@ -194,6 +195,9 @@ public:
|
|||
FUNC2RC(Transform, multimesh_instance_get_transform, RID, int)
|
||||
FUNC2RC(Transform2D, multimesh_instance_get_transform_2d, RID, int)
|
||||
FUNC2RC(Color, multimesh_instance_get_color, RID, int)
|
||||
FUNC2RC(Color, multimesh_instance_get_custom_data, RID, int)
|
||||
|
||||
FUNC2(multimesh_set_as_bulk_array, RID, const PoolVector<float> &)
|
||||
|
||||
FUNC2(multimesh_set_visible_instances, RID, int)
|
||||
FUNC1RC(int, multimesh_get_visible_instances, RID)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue