Merge pull request #102399 from clayjohn/cull-mask-overhaul
Overhaul the cull mask internals for Lights, Decals, and Particle Colliders
This commit is contained in:
@@ -209,7 +209,7 @@ void LightStorage::light_set_cull_mask(RID p_light, uint32_t p_mask) {
|
||||
light->cull_mask = p_mask;
|
||||
|
||||
light->version++;
|
||||
light->dependency.changed_notify(Dependency::DEPENDENCY_CHANGED_LIGHT);
|
||||
light->dependency.changed_notify(Dependency::DEPENDENCY_CHANGED_CULL_MASK);
|
||||
}
|
||||
|
||||
void LightStorage::light_set_shadow_caster_mask(RID p_light, uint32_t p_caster_mask) {
|
||||
|
||||
@@ -1319,6 +1319,13 @@ void ParticlesStorage::particles_collision_set_cull_mask(RID p_particles_collisi
|
||||
ParticlesCollision *particles_collision = particles_collision_owner.get_or_null(p_particles_collision);
|
||||
ERR_FAIL_NULL(particles_collision);
|
||||
particles_collision->cull_mask = p_cull_mask;
|
||||
particles_collision->dependency.changed_notify(Dependency::DEPENDENCY_CHANGED_CULL_MASK);
|
||||
}
|
||||
|
||||
uint32_t ParticlesStorage::particles_collision_get_cull_mask(RID p_particles_collision) const {
|
||||
ParticlesCollision *particles_collision = particles_collision_owner.get_or_null(p_particles_collision);
|
||||
ERR_FAIL_NULL_V(particles_collision, 0);
|
||||
return particles_collision->cull_mask;
|
||||
}
|
||||
|
||||
void ParticlesStorage::particles_collision_set_sphere_radius(RID p_particles_collision, real_t p_radius) {
|
||||
|
||||
@@ -436,6 +436,7 @@ public:
|
||||
GLuint particles_collision_get_heightfield_framebuffer(RID p_particles_collision) const;
|
||||
virtual uint32_t particles_collision_get_height_field_mask(RID p_particles_collision) const override;
|
||||
virtual void particles_collision_set_height_field_mask(RID p_particles_collision, uint32_t p_heightfield_mask) override;
|
||||
virtual uint32_t particles_collision_get_cull_mask(RID p_particles_collision) const override;
|
||||
|
||||
_FORCE_INLINE_ Size2i particles_collision_get_heightfield_size(RID p_particles_collision) const {
|
||||
ParticlesCollision *particles_collision = particles_collision_owner.get_or_null(p_particles_collision);
|
||||
|
||||
Reference in New Issue
Block a user