Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -2127,12 +2127,9 @@ Int BaseHeightMapRenderObjClass::getStaticDiffuse(Int x, Int y)

RTS3DScene *pMyScene = (RTS3DScene *)Scene;
if (pMyScene) {
RefRenderObjListIterator *it = pMyScene->createLightsIterator();
Comment thread
Skyaero42 marked this conversation as resolved.
doTheLight(&vertex, lightRay, &normalAtTexel, it, 1.0f);
if (it) {
pMyScene->destroyLightsIterator(it);
it = nullptr;
}
RefRenderObjListClass *lightlist = pMyScene->getLightList();
RefRenderObjListIterator it(lightlist);
doTheLight(&vertex, lightRay, &normalAtTexel, &it, 1.0f);
} else {
doTheLight(&vertex, lightRay, &normalAtTexel, nullptr, 1.0f);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -601,27 +601,19 @@ Bool W3DTerrainVisual::load( AsciiString filename )
pMapObj = pMapObj->getNext();
}


RefRenderObjListIterator *it = W3DDisplay::m_3DScene ? W3DDisplay::m_3DScene->createLightsIterator() : nullptr;
// apply the heightmap to the terrain render object

#ifdef DO_SEISMIC_SIMULATIONS
m_terrainRenderObject->initHeightData( m_clientHeightMap->getDrawWidth(),
m_clientHeightMap->getDrawHeight(),
m_clientHeightMap,
it);
nullptr);
#else
m_terrainRenderObject->initHeightData( m_logicHeightMap->getDrawWidth(),
m_logicHeightMap->getDrawHeight(),
m_logicHeightMap,
it);
nullptr);
#endif


if (it) {
W3DDisplay::m_3DScene->destroyLightsIterator(it);
it = nullptr;
}
// add our terrain render object to the scene
if (W3DDisplay::m_3DScene != nullptr)
W3DDisplay::m_3DScene->Add_Render_Object( m_terrainRenderObject );
Expand Down
10 changes: 3 additions & 7 deletions Core/GameEngineDevice/Source/W3DDevice/GameClient/W3DView.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3602,11 +3602,7 @@ void W3DView::updateTerrain()
{
DEBUG_ASSERTCRASH(TheTerrainRenderObject != nullptr, ("TheTerrainRenderObject is null"));

RefRenderObjListIterator *it = W3DDisplay::m_3DScene->createLightsIterator();
TheTerrainRenderObject->updateCenter(m_3DCamera, it);
if (it)
{
W3DDisplay::m_3DScene->destroyLightsIterator(it);
it = nullptr;
}
RefRenderObjListClass* lightlist = W3DDisplay::m_3DScene->getLightList();
RefRenderObjListIterator it(lightlist);
TheTerrainRenderObject->updateCenter(m_3DCamera, &it);
}
Original file line number Diff line number Diff line change
Expand Up @@ -85,12 +85,11 @@ class RTS3DScene : public SimpleSceneClass, public SubsystemInterface
/// Lighting methods
void addDynamicLight(W3DDynamicLight * obj);
void removeDynamicLight(W3DDynamicLight * obj);
RefRenderObjListIterator *createLightsIterator();
void destroyLightsIterator(RefRenderObjListIterator * it);
RefRenderObjListClass *getDynamicLights() {return &m_dynamicLightList;};
W3DDynamicLight *getADynamicLight();
void setGlobalLight(LightClass *pLight,Int lightIndex=0);
LightEnvironmentClass &getDefaultLightEnv() {return m_defaultLightEnv;}
RefRenderObjListClass* getLightList() { return &LightList; }

virtual void init() override {}
virtual void update() override {}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1596,29 +1596,6 @@ void RTS3DScene::flushTranslucentObjects(RenderInfoClass & rinfo)
DX8Wrapper::Set_DX8_Render_State(D3DRS_AMBIENT,DX8Wrapper::Convert_Color(this->Get_Ambient_Light(),0.0f));
}

//=============================================================================
// RTS3DScene::createLightsIterator
//=============================================================================
/** Returns an iterator of the lights in the scene. */
//=============================================================================
RefRenderObjListIterator * RTS3DScene::createLightsIterator()
{
RefRenderObjListIterator * it = NEW RefRenderObjListIterator(&LightList); // poolify
return it;
}


//=============================================================================
// RTS3DScene::destroyLightsIterator
//=============================================================================
/** Destroys the iterator returned by createLightsIterator. */
//=============================================================================
void RTS3DScene::destroyLightsIterator(RefRenderObjListIterator * it)
{
delete it;
}


//=============================================================================
// RTS3DScene::addDynamicLight
//=============================================================================
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,12 +85,11 @@ class RTS3DScene : public SimpleSceneClass, public SubsystemInterface
/// Lighting methods
void addDynamicLight(W3DDynamicLight * obj);
void removeDynamicLight(W3DDynamicLight * obj);
RefRenderObjListIterator *createLightsIterator();
void destroyLightsIterator(RefRenderObjListIterator * it);
RefRenderObjListClass *getDynamicLights() {return &m_dynamicLightList;};
W3DDynamicLight *getADynamicLight();
void setGlobalLight(LightClass *pLight,Int lightIndex=0);
LightEnvironmentClass &getDefaultLightEnv() {return m_defaultLightEnv;}
RefRenderObjListClass* getLightList() { return &LightList; }

virtual void init() override {}
virtual void update() override {}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1668,29 +1668,6 @@ void RTS3DScene::flushTranslucentObjects(RenderInfoClass & rinfo)
DX8Wrapper::Set_DX8_Render_State(D3DRS_AMBIENT,DX8Wrapper::Convert_Color(this->Get_Ambient_Light(),0.0f));
}

//=============================================================================
// RTS3DScene::createLightsIterator
//=============================================================================
/** Returns an iterator of the lights in the scene. */
//=============================================================================
RefRenderObjListIterator * RTS3DScene::createLightsIterator()
{
RefRenderObjListIterator * it = NEW RefRenderObjListIterator(&LightList); // poolify
return it;
}


//=============================================================================
// RTS3DScene::destroyLightsIterator
//=============================================================================
/** Destroys the iterator returned by createLightsIterator. */
//=============================================================================
void RTS3DScene::destroyLightsIterator(RefRenderObjListIterator * it)
{
delete it;
}


//=============================================================================
// RTS3DScene::addDynamicLight
//=============================================================================
Expand Down
Loading