Source:
<code>public DeferredPointLightsNode(Context context) { renderingConfig = context.get(Config.class).getRendering(); worldProvider = context.get(WorldProvider.class); entityManager = context.get(EntityManager.class); entityManager = context.get(EntityManager.class); WorldRenderer worldRenderer = context.get(WorldRenderer.class); activeCamera = worldRenderer.getActiveCamera(); lightCamera = worldRenderer.getLightCamera(); addDesiredStateChange(new LookThrough(activeCamera)); lightGeometryMaterial = getMaterial(LIGHT_GEOMETRY_MATERIAL_URN); addDesiredStateChange(new EnableMaterial(LIGHT_GEOMETRY_MATERIAL_URN)); addDesiredStateChange(new EnableFaceCulling()); addDesiredStateChange(new SetFacesToCull(GL_FRONT)); addDesiredStateChange(new EnableBlending()); addDesiredStateChange(new SetBlendFunction(GL_ONE, GL_ONE_MINUS_SRC_COLOR)); addDesiredStateChange(new DisableDepthTest()); DisplayResolutionDependentFBOs displayResolutionDependentFBOs = context.get(DisplayResolutionDependentFBOs.class); <START> FBO writeOnlyGBuffer = displayResolutionDependentFBOs.getGBufferPair().getWriteFbo(); <END> FBO lastUpdatedGBuffer = displayResolutionDependentFBOs.getGBufferPair().getLastUpdatedFbo(); addDesiredStateChange(new BindFbo(writeOnlyGBuffer)); addDesiredStateChange(new SetFboWriteMask(writeOnlyGBuffer, false, false, true)); initLightSphereDisplayList(); int textureSlot = 0; addDesiredStateChange(new SetInputTextureFromFbo(textureSlot++, lastUpdatedGBuffer, DepthStencilTexture, displayResolutionDependentFBOs, LIGHT_GEOMETRY_MATERIAL_URN, "texSceneOpaqueDepth")); addDesiredStateChange(new SetInputTextureFromFbo(textureSlot, lastUpdatedGBuffer, NormalsTexture, displayResolutionDependentFBOs, LIGHT_GEOMETRY_MATERIAL_URN, "texSceneOpaqueNormals")); }</code><technical_language>add a TODO in DeferredMainLightNode</technical_language>

Target:
public DeferredPointLightsNode(Context context) { renderingConfig = context.get(Config.class).getRendering(); worldProvider = context.get(WorldProvider.class); entityManager = context.get(EntityManager.class); entityManager = context.get(EntityManager.class); WorldRenderer worldRenderer = context.get(WorldRenderer.class); activeCamera = worldRenderer.getActiveCamera(); lightCamera = worldRenderer.getLightCamera(); addDesiredStateChange(new LookThrough(activeCamera)); lightGeometryMaterial = getMaterial(LIGHT_GEOMETRY_MATERIAL_URN); addDesiredStateChange(new EnableMaterial(LIGHT_GEOMETRY_MATERIAL_URN)); addDesiredStateChange(new EnableFaceCulling()); addDesiredStateChange(new SetFacesToCull(GL_FRONT)); addDesiredStateChange(new EnableBlending()); addDesiredStateChange(new SetBlendFunction(GL_ONE, GL_ONE_MINUS_SRC_COLOR)); addDesiredStateChange(new DisableDepthTest()); DisplayResolutionDependentFBOs displayResolutionDependentFBOs = context.get(DisplayResolutionDependentFBOs.class); FBO lastUpdatedGBuffer = displayResolutionDependentFBOs.getGBufferPair().getLastUpdatedFbo(); addDesiredStateChange(new BindFbo(lastUpdatedGBuffer)); addDesiredStateChange(new SetFboWriteMask(lastUpdatedGBuffer, false, false, true)); initLightSphereDisplayList(); int textureSlot = 0; addDesiredStateChange(new SetInputTextureFromFbo(textureSlot++, lastUpdatedGBuffer, DepthStencilTexture, displayResolutionDependentFBOs, LIGHT_GEOMETRY_MATERIAL_URN, "texSceneOpaqueDepth")); addDesiredStateChange(new SetInputTextureFromFbo(textureSlot, lastUpdatedGBuffer, NormalsTexture, displayResolutionDependentFBOs, LIGHT_GEOMETRY_MATERIAL_URN, "texSceneOpaqueNormals")); }