@Override public StateRecord createStateRecord(final ContextCapabilities caps) { return new LightStateRecord(); } }
private static void setLightEnabled(final boolean enable, final LightStateRecord record) { if (!record.isValid() || record.isEnabled() != enable) { if (enable) { GL11.glEnable(GL11.GL_LIGHTING); } else { GL11.glDisable(GL11.GL_LIGHTING); } record.setEnabled(enable); } }
private static void setLocalViewer(final boolean localViewer, final LightStateRecord record) { if (!record.isValid() || record.isLocalViewer() != localViewer) { if (localViewer) { GL11.glLightModeli(GL11.GL_LIGHT_MODEL_LOCAL_VIEWER, GL11.GL_TRUE); } else { GL11.glLightModeli(GL11.GL_LIGHT_MODEL_LOCAL_VIEWER, GL11.GL_FALSE); } record.setLocalViewer(localViewer); } }
private static void setSpecularControl(final boolean separateSpecularOn, final LightStateRecord record) { if (!record.isValid() || record.isSeparateSpecular() != separateSpecularOn) { if (separateSpecularOn) { GL11.glLightModeli(GL12.GL_LIGHT_MODEL_COLOR_CONTROL, GL12.GL_SEPARATE_SPECULAR_COLOR); } else { GL11.glLightModeli(GL12.GL_LIGHT_MODEL_COLOR_CONTROL, GL12.GL_SINGLE_COLOR); } record.setSeparateSpecular(separateSpecularOn); } }
LightRecord lr = record.getLightRecord(i); record.setLightRecord(lr, i); LightRecord lr = record.getLightRecord(i); record.setLightRecord(lr, i); if (!record.isValid()) { record.validate();
private static void setTwoSided(final boolean twoSided, final LightStateRecord record) { if (!record.isValid() || record.isTwoSidedOn() != twoSided) { if (twoSided) { GL11.glLightModeli(GL11.GL_LIGHT_MODEL_TWO_SIDE, GL11.GL_TRUE); } else { GL11.glLightModeli(GL11.GL_LIGHT_MODEL_TWO_SIDE, GL11.GL_FALSE); } record.setTwoSidedOn(twoSided); } }
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); }
LightRecord lr = record.getLightRecord(i); record.setLightRecord(lr, i); LightRecord lr = record.getLightRecord(i); record.setLightRecord(lr, i); if (!record.isValid()) { record.validate();
private static void setTwoSided(final boolean twoSided, final LightStateRecord record) { final GL gl = GLContext.getCurrentGL(); if (!record.isValid() || record.isTwoSidedOn() != twoSided) { if (twoSided) { gl.getGL2().glLightModeli(GL2ES1.GL_LIGHT_MODEL_TWO_SIDE, GL.GL_TRUE); } else { gl.getGL2().glLightModeli(GL2ES1.GL_LIGHT_MODEL_TWO_SIDE, GL.GL_FALSE); } record.setTwoSidedOn(twoSided); } }
private static void setSpecularControl(final boolean separateSpecularOn, final LightStateRecord record) { final GL gl = GLContext.getCurrentGL(); if (!record.isValid() || record.isSeparateSpecular() != separateSpecularOn) { if (separateSpecularOn) { gl.getGL2().glLightModeli(GL2.GL_LIGHT_MODEL_COLOR_CONTROL, GL2.GL_SEPARATE_SPECULAR_COLOR); } else { gl.getGL2().glLightModeli(GL2.GL_LIGHT_MODEL_COLOR_CONTROL, GL2.GL_SINGLE_COLOR); } record.setSeparateSpecular(separateSpecularOn); } }
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); }
private static void setLightEnabled(final boolean enable, final LightStateRecord record) { final GL gl = GLContext.getCurrentGL(); if (!record.isValid() || record.isEnabled() != enable) { if (enable) { gl.glEnable(GLLightingFunc.GL_LIGHTING); } else { gl.glDisable(GLLightingFunc.GL_LIGHTING); } record.setEnabled(enable); } }
private static void setLocalViewer(final boolean localViewer, final LightStateRecord record) { final GL gl = GLContext.getCurrentGL(); if (!record.isValid() || record.isLocalViewer() != localViewer) { if (localViewer) { gl.getGL2().glLightModeli(GL2.GL_LIGHT_MODEL_LOCAL_VIEWER, GL.GL_TRUE); } else { gl.getGL2().glLightModeli(GL2.GL_LIGHT_MODEL_LOCAL_VIEWER, GL.GL_FALSE); } record.setLocalViewer(localViewer); } }
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); } }
@Override public StateRecord createStateRecord(final ContextCapabilities caps) { return new LightStateRecord(); } }
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 setModelAmbient(final LightStateRecord record, final ReadOnlyColorRGBA color) { if (!record.isValid() || !record.globalAmbient.equals(color)) { record.lightBuffer.clear(); record.lightBuffer.put(color.getRed()); record.lightBuffer.put(color.getGreen()); record.lightBuffer.put(color.getBlue()); record.lightBuffer.put(color.getAlpha()); record.lightBuffer.flip(); GL11.glLightModel(GL11.GL_LIGHT_MODEL_AMBIENT, record.lightBuffer); record.globalAmbient.set(color); } }
private static void setAmbient(final int index, final LightStateRecord record, final ReadOnlyColorRGBA ambient, final LightRecord lr) { if (!record.isValid() || !lr.ambient.equals(ambient)) { record.lightBuffer.clear(); record.lightBuffer.put(ambient.getRed()); record.lightBuffer.put(ambient.getGreen()); record.lightBuffer.put(ambient.getBlue()); record.lightBuffer.put(ambient.getAlpha()); record.lightBuffer.flip(); GL11.glLight(GL11.GL_LIGHT0 + index, GL11.GL_AMBIENT, record.lightBuffer); lr.ambient.set(ambient); } }
private static void setDiffuse(final int index, final LightStateRecord record, final ReadOnlyColorRGBA diffuse, final LightRecord lr) { if (!record.isValid() || !lr.diffuse.equals(diffuse)) { record.lightBuffer.clear(); record.lightBuffer.put(diffuse.getRed()); record.lightBuffer.put(diffuse.getGreen()); record.lightBuffer.put(diffuse.getBlue()); record.lightBuffer.put(diffuse.getAlpha()); record.lightBuffer.flip(); GL11.glLight(GL11.GL_LIGHT0 + index, GL11.GL_DIFFUSE, record.lightBuffer); lr.diffuse.set(diffuse); } }
private static void setSpecular(final int index, final LightStateRecord record, final ReadOnlyColorRGBA specular, final LightRecord lr) { if (!record.isValid() || !lr.specular.equals(specular)) { record.lightBuffer.clear(); record.lightBuffer.put(specular.getRed()); record.lightBuffer.put(specular.getGreen()); record.lightBuffer.put(specular.getBlue()); record.lightBuffer.put(specular.getAlpha()); record.lightBuffer.flip(); GL11.glLight(GL11.GL_LIGHT0 + index, GL11.GL_SPECULAR, record.lightBuffer); lr.specular.set(specular); } }