From 6f75d6f0605c03598e1e3610f9e2d667aef0327b Mon Sep 17 00:00:00 2001 From: Valentin Bas Date: Tue, 9 Jun 2020 16:56:20 +0200 Subject: [PATCH 1/2] Add and expose RegisterVolumeForLighting function --- dev/Code/CryEngine/Cry3DEngine/3DEngineLight.cpp | 5 +++++ dev/Code/CryEngine/Cry3DEngine/3dEngine.h | 2 ++ dev/Code/CryEngine/CryCommon/I3DEngine.h | 6 ++++++ 3 files changed, 13 insertions(+) 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: From 8e967937af1c1e7f217f2de9e1daa6b9ed5b7fa8 Mon Sep 17 00:00:00 2001 From: Valentin Bas Date: Fri, 12 Jun 2020 11:11:30 +0200 Subject: [PATCH 2/2] Add missed mock for RegisterVolumeForLighting to fix unit tests --- dev/Code/CryEngine/CryCommon/Mocks/I3DEngineMock.h | 2 ++ 1 file changed, 2 insertions(+) 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,