Commit 4aa7760c authored by Hein-Pieter van Braam-Stewart's avatar Hein-Pieter van Braam-Stewart
Browse files

Revert "Ensure non-emitting particles not processed on entering tree"

This reverts commit 24b7f088.

This causes a particles regression in tps-demo
parent 4fefc089
Loading
Loading
Loading
Loading
+3 −4
Original line number Diff line number Diff line
@@ -37,7 +37,6 @@
void CPUParticles2D::set_emitting(bool p_emitting) {

	emitting = p_emitting;
	if (emitting)
	set_process_internal(true);
}

@@ -966,7 +965,7 @@ void CPUParticles2D::_update_render_thread() {
void CPUParticles2D::_notification(int p_what) {

	if (p_what == NOTIFICATION_ENTER_TREE) {
		set_process_internal(emitting);
		_set_redraw(true);
	}

	if (p_what == NOTIFICATION_EXIT_TREE) {
@@ -1002,6 +1001,7 @@ void CPUParticles2D::_notification(int p_what) {

		float delta = get_process_delta_time();
		if (emitting) {
			_set_redraw(true);
			inactive_time = 0;
		} else {
			inactive_time += delta;
@@ -1017,7 +1017,6 @@ void CPUParticles2D::_notification(int p_what) {
				return;
			}
		}
		_set_redraw(true);

		if (time == 0 && pre_process_time > 0.0) {

+4 −6
Original line number Diff line number Diff line
@@ -47,7 +47,6 @@ PoolVector<Face3> CPUParticles::get_faces(uint32_t p_usage_flags) const {
void CPUParticles::set_emitting(bool p_emitting) {

	emitting = p_emitting;
	if (emitting)
	set_process_internal(true);
}

@@ -1003,11 +1002,9 @@ void CPUParticles::_set_redraw(bool p_redraw) {
	if (redraw) {
		VS::get_singleton()->connect("frame_pre_draw", this, "_update_render_thread");
		VS::get_singleton()->instance_geometry_set_flag(get_instance(), VS::INSTANCE_FLAG_DRAW_NEXT_FRAME_IF_VISIBLE, true);
		VS::get_singleton()->multimesh_set_visible_instances(multimesh, -1);
	} else {
		VS::get_singleton()->disconnect("frame_pre_draw", this, "_update_render_thread");
		VS::get_singleton()->instance_geometry_set_flag(get_instance(), VS::INSTANCE_FLAG_DRAW_NEXT_FRAME_IF_VISIBLE, false);
		VS::get_singleton()->multimesh_set_visible_instances(multimesh, 0);
	}
#ifndef NO_THREADS
	update_mutex->unlock();
@@ -1032,7 +1029,7 @@ void CPUParticles::_update_render_thread() {
void CPUParticles::_notification(int p_what) {

	if (p_what == NOTIFICATION_ENTER_TREE) {
		set_process_internal(emitting);
		_set_redraw(true);
	}

	if (p_what == NOTIFICATION_EXIT_TREE) {
@@ -1051,6 +1048,8 @@ void CPUParticles::_notification(int p_what) {

		float delta = get_process_delta_time();
		if (emitting) {

			_set_redraw(true);
			inactive_time = 0;
		} else {
			inactive_time += delta;
@@ -1066,7 +1065,6 @@ void CPUParticles::_notification(int p_what) {
				return;
			}
		}
		_set_redraw(true);

		bool processed = false;