//! renders the node. void CSkyBoxSceneNode::render() { video::IVideoDriver* driver = SceneManager->getVideoDriver(); scene::ICameraSceneNode* camera = SceneManager->getActiveCamera(); if (!camera || !driver) return; //(jmc) dynamic lights interfere with skybox render //(jmc) so save dynamic light states //(jmc) and kill them s32 dynlightcount = driver->getDynamicLightCount(); video::SLight* light; light = new video::SLight[dynlightcount]; for (s32 ii=0; iigetDynamicLight(ii); } driver->deleteAllDynamicLights(); //(jmc) end kill dyn lights core::matrix4 mat; mat.setTranslation(camera->getAbsolutePosition()); driver->setTransform(video::ETS_WORLD, mat); for (s32 i=0; i<6; ++i) { driver->setMaterial(Material[i]); driver->drawIndexedTriangleList(&Vertices[i*4], 4, Indices, 2); } //(jmc) restore dynamic lights for (ii=0; iiaddDynamicLight(light[ii]); } delete [] light; //(jmc) end restore dyn lights }