فهرست منبع

Merge pull request #20222 from godotengine/revert-19764-godot_malbach

Revert "Fix #19507 Not emitted particles affects performance"
Max Hilbrunner 7 سال پیش
والد
کامیت
f694dcec83

+ 0 - 1
drivers/dummy/rasterizer_dummy.h

@@ -682,7 +682,6 @@ public:
 	void particles_set_emission_transform(RID p_particles, const Transform &p_transform) {}
 
 	bool particles_get_emitting(RID p_particles) { return false; }
-	bool particles_get_inactive(RID p_particles) { return false; }
 	int particles_get_draw_passes(RID p_particles) const { return 0; }
 	RID particles_get_draw_pass_mesh(RID p_particles, int p_pass) const { return RID(); }
 

+ 0 - 4
drivers/gles2/rasterizer_storage_gles2.cpp

@@ -1637,10 +1637,6 @@ bool RasterizerStorageGLES2::particles_get_emitting(RID p_particles) {
 	return false;
 }
 
-bool RasterizerStorageGLES2::particles_get_inactive(RID p_particles) {
-	return false;
-}
-
 void RasterizerStorageGLES2::particles_set_amount(RID p_particles, int p_amount) {
 }
 

+ 0 - 1
drivers/gles2/rasterizer_storage_gles2.h

@@ -693,7 +693,6 @@ public:
 
 	virtual void particles_set_emitting(RID p_particles, bool p_emitting);
 	virtual bool particles_get_emitting(RID p_particles);
-	virtual bool particles_get_inactive(RID p_particles);
 
 	virtual void particles_set_amount(RID p_particles, int p_amount);
 	virtual void particles_set_lifetime(RID p_particles, float p_lifetime);

+ 0 - 3
drivers/gles3/rasterizer_scene_gles3.cpp

@@ -1679,9 +1679,6 @@ void RasterizerSceneGLES3::_render_geometry(RenderList::Element *e) {
 			RasterizerStorageGLES3::Particles *particles = static_cast<RasterizerStorageGLES3::Particles *>(e->owner);
 			RasterizerStorageGLES3::Surface *s = static_cast<RasterizerStorageGLES3::Surface *>(e->geometry);
 
-			if (!particles->emitting && particles->inactive)
-				break;
-
 			if (!particles->use_local_coords) //not using local coordinates? then clear transform..
 				state.scene_shader.set_uniform(SceneShaderGLES3::WORLD_TRANSFORM, Transform());
 

+ 0 - 7
drivers/gles3/rasterizer_storage_gles3.cpp

@@ -5574,13 +5574,6 @@ bool RasterizerStorageGLES3::particles_get_emitting(RID p_particles) {
 	return particles->emitting;
 }
 
-bool RasterizerStorageGLES3::particles_get_inactive(RID p_particles) {
-	Particles *particles = particles_owner.getornull(p_particles);
-	ERR_FAIL_COND_V(!particles, false);
-
-	return particles->inactive;
-}
-
 void RasterizerStorageGLES3::particles_set_amount(RID p_particles, int p_amount) {
 
 	Particles *particles = particles_owner.getornull(p_particles);

+ 0 - 1
drivers/gles3/rasterizer_storage_gles3.h

@@ -1224,7 +1224,6 @@ public:
 
 	virtual void particles_set_emitting(RID p_particles, bool p_emitting);
 	virtual bool particles_get_emitting(RID p_particles);
-	virtual bool particles_get_inactive(RID p_particles);
 	virtual void particles_set_amount(RID p_particles, int p_amount);
 	virtual void particles_set_lifetime(RID p_particles, float p_lifetime);
 	virtual void particles_set_one_shot(RID p_particles, bool p_one_shot);

+ 0 - 1
servers/visual/rasterizer.h

@@ -482,7 +482,6 @@ public:
 
 	virtual void particles_set_emitting(RID p_particles, bool p_emitting) = 0;
 	virtual bool particles_get_emitting(RID p_particles) = 0;
-	virtual bool particles_get_inactive(RID p_particles) = 0;
 
 	virtual void particles_set_amount(RID p_particles, int p_amount) = 0;
 	virtual void particles_set_lifetime(RID p_particles, float p_lifetime) = 0;

+ 0 - 1
servers/visual/visual_server_raster.h

@@ -396,7 +396,6 @@ public:
 
 	BIND2(particles_set_emitting, RID, bool)
 	BIND1R(bool, particles_get_emitting, RID)
-	BIND1R(bool, particles_get_inactive, RID)
 	BIND2(particles_set_amount, RID, int)
 	BIND2(particles_set_lifetime, RID, float)
 	BIND2(particles_set_one_shot, RID, bool)

+ 4 - 6
servers/visual/visual_server_scene.cpp

@@ -1872,12 +1872,10 @@ void VisualServerScene::_prepare_scene(const Transform p_cam_transform, const Ca
 			InstanceGeometryData *geom = static_cast<InstanceGeometryData *>(ins->base_data);
 
 			if (ins->base_type == VS::INSTANCE_PARTICLES) {
-				if (VSG::storage->particles_get_emitting(ins->base) || !VSG::storage->particles_get_inactive(ins->base)) {
-					//particles visible? process them
-					VSG::storage->particles_request_process(ins->base);
-					//particles visible? request redraw
-					VisualServerRaster::redraw_request();
-				}
+				//particles visible? process them
+				VSG::storage->particles_request_process(ins->base);
+				//particles visible? request redraw
+				VisualServerRaster::redraw_request();
 			}
 
 			if (geom->lighting_dirty) {

+ 0 - 1
servers/visual/visual_server_wrap_mt.h

@@ -328,7 +328,6 @@ public:
 
 	FUNC2(particles_set_emitting, RID, bool)
 	FUNC1R(bool, particles_get_emitting, RID)
-	FUNC1R(bool, particles_get_inactive, RID)
 	FUNC2(particles_set_amount, RID, int)
 	FUNC2(particles_set_lifetime, RID, float)
 	FUNC2(particles_set_one_shot, RID, bool)

+ 0 - 1
servers/visual_server.cpp

@@ -1699,7 +1699,6 @@ void VisualServer::_bind_methods() {
 	ClassDB::bind_method(D_METHOD("particles_create"), &VisualServer::particles_create);
 	ClassDB::bind_method(D_METHOD("particles_set_emitting", "particles", "emitting"), &VisualServer::particles_set_emitting);
 	ClassDB::bind_method(D_METHOD("particles_get_emitting", "particles"), &VisualServer::particles_get_emitting);
-	ClassDB::bind_method(D_METHOD("particles_get_inactive", "particles"), &VisualServer::particles_get_inactive);
 	ClassDB::bind_method(D_METHOD("particles_set_amount", "particles", "amount"), &VisualServer::particles_set_amount);
 	ClassDB::bind_method(D_METHOD("particles_set_lifetime", "particles", "lifetime"), &VisualServer::particles_set_lifetime);
 	ClassDB::bind_method(D_METHOD("particles_set_one_shot", "particles", "one_shot"), &VisualServer::particles_set_one_shot);

+ 0 - 1
servers/visual_server.h

@@ -519,7 +519,6 @@ public:
 
 	virtual void particles_set_emitting(RID p_particles, bool p_emitting) = 0;
 	virtual bool particles_get_emitting(RID p_particles) = 0;
-	virtual bool particles_get_inactive(RID p_particles) = 0;
 	virtual void particles_set_amount(RID p_particles, int p_amount) = 0;
 	virtual void particles_set_lifetime(RID p_particles, float p_lifetime) = 0;
 	virtual void particles_set_one_shot(RID p_particles, bool p_one_shot) = 0;