private static void setConstant(final int index, final float constant, final LightRecord lr, final boolean force) { if (force || constant != lr.getConstant()) { GL11.glLightf(GL11.GL_LIGHT0 + index, GL11.GL_CONSTANT_ATTENUATION, constant); lr.setConstant(constant); } }
private static void setQuadratic(final int index, final float quad, final LightRecord lr, final boolean force) { if (force || quad != lr.getQuadratic()) { GL11.glLightf(GL11.GL_LIGHT0 + index, GL11.GL_QUADRATIC_ATTENUATION, quad); lr.setQuadratic(quad); } }
private static void setSingleLightEnabled(final boolean enable, final int index, final LightStateRecord record, final LightRecord lr) { if (!record.isValid() || lr.isEnabled() != enable) { if (enable) { GL11.glEnable(GL11.GL_LIGHT0 + index); } else { GL11.glDisable(GL11.GL_LIGHT0 + index); } lr.setEnabled(enable); } }
private static void setSpotCutoff(final int index, final LightStateRecord record, final float cutoff, final LightRecord lr) { if (!record.isValid() || lr.getSpotCutoff() != cutoff) { GL11.glLightf(GL11.GL_LIGHT0 + index, GL11.GL_SPOT_CUTOFF, cutoff); lr.setSpotCutoff(cutoff); } } }
private static void setSpotExponent(final int index, final LightStateRecord record, final float exponent, final LightRecord lr) { if (!record.isValid() || lr.getSpotExponent() != exponent) { GL11.glLightf(GL11.GL_LIGHT0 + index, GL11.GL_SPOT_EXPONENT, exponent); lr.setSpotExponent(exponent); } }
private static void setAttenuate(final boolean attenuate, final int index, final Light light, final LightStateRecord record, final LightRecord lr) { if (attenuate) { setConstant(index, light.getConstant(), lr, !record.isValid()); setLinear(index, light.getLinear(), lr, !record.isValid()); setQuadratic(index, light.getQuadratic(), lr, !record.isValid()); } else { setConstant(index, 1, lr, !record.isValid()); setLinear(index, 0, lr, !record.isValid()); setQuadratic(index, 0, lr, !record.isValid()); } lr.setAttenuate(attenuate); }
@Override public void invalidate() { super.invalidate(); for (final LightRecord record : lightList) { record.invalidate(); } lightMask = -1; backLightMask = -1; twoSidedOn = false; enabled = false; localViewer = false; separateSpecular = false; globalAmbient.set(-1, -1, -1, -1); }
lr = new LightRecord(); record.setLightRecord(lr, i); lr = new LightRecord(); record.setLightRecord(lr, i);
private static void setSingleLightEnabled(final boolean enable, final int index, final LightStateRecord record, final LightRecord lr) { final GL gl = GLContext.getCurrentGL(); if (!record.isValid() || lr.isEnabled() != enable) { if (enable) { gl.glEnable(GLLightingFunc.GL_LIGHT0 + index); } else { gl.glDisable(GLLightingFunc.GL_LIGHT0 + index); } lr.setEnabled(enable); } }
private static void setSpotCutoff(final int index, final LightStateRecord record, final float cutoff, final LightRecord lr) { final GL gl = GLContext.getCurrentGL(); if (!record.isValid() || lr.getSpotCutoff() != cutoff) { gl.getGL2().glLightf(GLLightingFunc.GL_LIGHT0 + index, GLLightingFunc.GL_SPOT_CUTOFF, cutoff); lr.setSpotCutoff(cutoff); } } }
private static void setSpotExponent(final int index, final LightStateRecord record, final float exponent, final LightRecord lr) { final GL gl = GLContext.getCurrentGL(); if (!record.isValid() || lr.getSpotExponent() != exponent) { gl.getGL2().glLightf(GLLightingFunc.GL_LIGHT0 + index, GLLightingFunc.GL_SPOT_EXPONENT, exponent); lr.setSpotExponent(exponent); } }
private static void setAttenuate(final boolean attenuate, final int index, final Light light, final LightStateRecord record, final LightRecord lr) { if (attenuate) { setConstant(index, light.getConstant(), lr, !record.isValid()); setLinear(index, light.getLinear(), lr, !record.isValid()); setQuadratic(index, light.getQuadratic(), lr, !record.isValid()); } else { setConstant(index, 1, lr, !record.isValid()); setLinear(index, 0, lr, !record.isValid()); setQuadratic(index, 0, lr, !record.isValid()); } lr.setAttenuate(attenuate); }
@Override public void invalidate() { super.invalidate(); for (final LightRecord record : lightList) { record.invalidate(); } lightMask = -1; backLightMask = -1; twoSidedOn = false; enabled = false; localViewer = false; separateSpecular = false; globalAmbient.set(-1, -1, -1, -1); }
lr = new LightRecord(); record.setLightRecord(lr, i); lr = new LightRecord(); record.setLightRecord(lr, i);
private static void setQuadratic(final int index, final float quad, final LightRecord lr, final boolean force) { final GL gl = GLContext.getCurrentGL(); if (force || quad != lr.getQuadratic()) { gl.getGL2().glLightf(GLLightingFunc.GL_LIGHT0 + index, GLLightingFunc.GL_QUADRATIC_ATTENUATION, quad); lr.setQuadratic(quad); } }
private static void setLinear(final int index, final float linear, final LightRecord lr, final boolean force) { final GL gl = GLContext.getCurrentGL(); if (force || linear != lr.getLinear()) { gl.getGL2().glLightf(GLLightingFunc.GL_LIGHT0 + index, GLLightingFunc.GL_LINEAR_ATTENUATION, linear); lr.setLinear(linear); } }
private static void setConstant(final int index, final float constant, final LightRecord lr, final boolean force) { final GL gl = GLContext.getCurrentGL(); if (force || constant != lr.getConstant()) { gl.getGL2().glLightf(GLLightingFunc.GL_LIGHT0 + index, GLLightingFunc.GL_CONSTANT_ATTENUATION, constant); lr.setConstant(constant); } }