Revert "Fix #19507 Not emitted particles affects performance"

This commit is contained in:
Max Hilbrunner 2018-07-17 16:52:13 +02:00 committed by GitHub
parent 4b626dc114
commit 277793439a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
12 changed files with 4 additions and 28 deletions

View file

@ -682,7 +682,6 @@ public:
void particles_set_emission_transform(RID p_particles, const Transform &p_transform) {} void particles_set_emission_transform(RID p_particles, const Transform &p_transform) {}
bool particles_get_emitting(RID p_particles) { return false; } 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; } 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(); } RID particles_get_draw_pass_mesh(RID p_particles, int p_pass) const { return RID(); }

View file

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

View file

@ -693,7 +693,6 @@ public:
virtual void particles_set_emitting(RID p_particles, bool p_emitting); virtual void particles_set_emitting(RID p_particles, bool p_emitting);
virtual bool particles_get_emitting(RID p_particles); 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_amount(RID p_particles, int p_amount);
virtual void particles_set_lifetime(RID p_particles, float p_lifetime); virtual void particles_set_lifetime(RID p_particles, float p_lifetime);

View file

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

View file

@ -5574,13 +5574,6 @@ bool RasterizerStorageGLES3::particles_get_emitting(RID p_particles) {
return particles->emitting; 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) { void RasterizerStorageGLES3::particles_set_amount(RID p_particles, int p_amount) {
Particles *particles = particles_owner.getornull(p_particles); Particles *particles = particles_owner.getornull(p_particles);

View file

@ -1224,7 +1224,6 @@ public:
virtual void particles_set_emitting(RID p_particles, bool p_emitting); virtual void particles_set_emitting(RID p_particles, bool p_emitting);
virtual bool particles_get_emitting(RID p_particles); 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_amount(RID p_particles, int p_amount);
virtual void particles_set_lifetime(RID p_particles, float p_lifetime); virtual void particles_set_lifetime(RID p_particles, float p_lifetime);
virtual void particles_set_one_shot(RID p_particles, bool p_one_shot); virtual void particles_set_one_shot(RID p_particles, bool p_one_shot);

View file

@ -482,7 +482,6 @@ public:
virtual void particles_set_emitting(RID p_particles, bool p_emitting) = 0; 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_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_amount(RID p_particles, int p_amount) = 0;
virtual void particles_set_lifetime(RID p_particles, float p_lifetime) = 0; virtual void particles_set_lifetime(RID p_particles, float p_lifetime) = 0;

View file

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

View file

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

View file

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

View file

@ -1699,7 +1699,6 @@ void VisualServer::_bind_methods() {
ClassDB::bind_method(D_METHOD("particles_create"), &VisualServer::particles_create); 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_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_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_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_lifetime", "particles", "lifetime"), &VisualServer::particles_set_lifetime);
ClassDB::bind_method(D_METHOD("particles_set_one_shot", "particles", "one_shot"), &VisualServer::particles_set_one_shot); ClassDB::bind_method(D_METHOD("particles_set_one_shot", "particles", "one_shot"), &VisualServer::particles_set_one_shot);

View file

@ -519,7 +519,6 @@ public:
virtual void particles_set_emitting(RID p_particles, bool p_emitting) = 0; 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_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_amount(RID p_particles, int p_amount) = 0;
virtual void particles_set_lifetime(RID p_particles, float p_lifetime) = 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; virtual void particles_set_one_shot(RID p_particles, bool p_one_shot) = 0;