diff --git a/dev/Code/CryEngine/Cry3DEngine/3DEngineLight.cpp b/dev/Code/CryEngine/Cry3DEngine/3DEngineLight.cpp index c96594ad57..bd419ca673 100644 --- a/dev/Code/CryEngine/Cry3DEngine/3DEngineLight.cpp +++ b/dev/Code/CryEngine/Cry3DEngine/3DEngineLight.cpp @@ -678,6 +678,11 @@ void C3DEngine::GetLightVolumes(threadID nThreadID, SLightVolume*& pLightVols, u m_LightVolumesMgr.GetLightVolumes(nThreadID, pLightVols, nNumVols); } +uint16 C3DEngine::RegisterVolumeForLighting(const Vec3& vPos, f32 fRadius, uint8 nClipVolumeRef, const SRenderingPassInfo& passInfo) +{ + return m_LightVolumesMgr.RegisterVolume(vPos, fRadius, nClipVolumeRef, passInfo); +} + ////////////////////////////////////////////////////////////////////////// #ifndef _RELEASE void CLightVolumesMgr::DrawDebug(const SRenderingPassInfo& passInfo) diff --git a/dev/Code/CryEngine/Cry3DEngine/3dEngine.h b/dev/Code/CryEngine/Cry3DEngine/3dEngine.h index 37476744e1..135dc42db0 100644 --- a/dev/Code/CryEngine/Cry3DEngine/3dEngine.h +++ b/dev/Code/CryEngine/Cry3DEngine/3dEngine.h @@ -1243,6 +1243,8 @@ class C3DEngine /////////////////////////////////////////////////////////////////////////////// virtual void GetLightVolumes(threadID nThreadID, SLightVolume*& pLightVols, uint32& nNumVols); + virtual uint16 RegisterVolumeForLighting(const Vec3& vPos, f32 fRadius, uint8 nClipVolumeRef, const SRenderingPassInfo& passInfo); + CLightVolumesMgr m_LightVolumesMgr; /////////////////////////////////////////////////////////////////////////////// diff --git a/dev/Code/CryEngine/CryCommon/I3DEngine.h b/dev/Code/CryEngine/CryCommon/I3DEngine.h index a5c864bba7..36a7099975 100644 --- a/dev/Code/CryEngine/CryCommon/I3DEngine.h +++ b/dev/Code/CryEngine/CryCommon/I3DEngine.h @@ -2463,6 +2463,12 @@ struct I3DEngine // An array holding all the SLightVolume pointers. virtual void GetLightVolumes(threadID nThreadID, SLightVolume*& pLightVols, uint32& nNumVols) = 0; + // Summary: + // Registers a volume for lighting + // Return Value: + // The index of the registered volume. + virtual uint16 RegisterVolumeForLighting(const Vec3& vPos, f32 fRadius, uint8 nClipVolumeRef, const SRenderingPassInfo& passInfo) = 0; + // Summary: // Reload the heightmap. // Description: diff --git a/dev/Code/CryEngine/CryCommon/Mocks/I3DEngineMock.h b/dev/Code/CryEngine/CryCommon/Mocks/I3DEngineMock.h index e1465147b5..00c90238cb 100644 --- a/dev/Code/CryEngine/CryCommon/Mocks/I3DEngineMock.h +++ b/dev/Code/CryEngine/CryCommon/Mocks/I3DEngineMock.h @@ -397,6 +397,8 @@ class I3DEngineMock const PodArray* ()); MOCK_METHOD3(GetLightVolumes, void(threadID nThreadID, SLightVolume*& pLightVols, uint32& nNumVols)); + MOCK_METHOD4(RegisterVolumeForLighting, + uint16(const Vec3& vPos, f32 fRadius, uint8 nClipVolumeRef, const SRenderingPassInfo& passInfo)); MOCK_METHOD1(RestoreTerrainFromDisk, bool(int)); MOCK_METHOD1(GetFilePath,