Pass position reference instead of copy when collecting lights

This commit is contained in:
Sezz 2024-12-15 00:19:57 +11:00
parent 19528ea3bd
commit ab7e25aa7a
2 changed files with 4 additions and 4 deletions

View file

@ -434,7 +434,7 @@ namespace TEN::Renderer
void CollectRooms(RenderView& renderView, bool onlyRooms);
void CollectItems(short roomNumber, RenderView& renderView);
void CollectStatics(short roomNumber, RenderView& renderView);
void CollectLights(Vector3 position, float radius, int roomNumber, int prevRoomNumber, bool prioritizeShadowLight, bool useCachedRoomLights, std::vector<RendererLightNode>* roomsLights, std::vector<RendererLight*>* outputLights);
void CollectLights(const Vector3& pos, float radius, int roomNumber, int prevRoomNumber, bool prioritizeShadowLight, bool useCachedRoomLights, std::vector<RendererLightNode>* roomsLights, std::vector<RendererLight*>* outputLights);
void CollectLightsForItem(RendererItem* item);
void CollectLightsForEffect(short roomNumber, RendererEffect* effect);
void CollectLightsForRoom(short roomNumber, RenderView& renderView);

View file

@ -528,7 +528,7 @@ namespace TEN::Renderer
}
}
void Renderer::CollectLights(Vector3 position, float radius, int roomNumber, int prevRoomNumber, bool prioritizeShadowLight, bool useCachedRoomLights, std::vector<RendererLightNode>* roomsLights, std::vector<RendererLight*>* outputLights)
void Renderer::CollectLights(const Vector3& pos, float radius, int roomNumber, int prevRoomNumber, bool prioritizeShadowLight, bool useCachedRoomLights, std::vector<RendererLightNode>* roomsLights, std::vector<RendererLight*>* outputLights)
{
if (_rooms.size() <= roomNumber)
return;
@ -573,7 +573,7 @@ namespace TEN::Renderer
// Dynamic lights have the priority
for (auto& light : _dynamicLights[_dynamicLightList])
{
float distSqr = Vector3::DistanceSquared(position, light.Position);
float distSqr = Vector3::DistanceSquared(pos, light.Position);
processLight(light, distSqr, 1);
}
@ -604,7 +604,7 @@ namespace TEN::Renderer
light.Type == LightType::Shadow ||
light.Type == LightType::Spot)
{
float distSqr = Vector3::DistanceSquared(position, light.Position);
float distSqr = Vector3::DistanceSquared(pos, light.Position);
processLight(light, distSqr, 0);
}
else