public static void apply(final JoglRenderer renderer, final MaterialState state) { // ask for the current state record final RenderContext context = ContextManager.getCurrentContext(); final MaterialStateRecord record = (MaterialStateRecord) context.getStateRecord(StateType.Material); context.setCurrentState(StateType.Material, state); if (state.isEnabled()) { // setup colormaterial, if changed. applyColorMaterial(state.getColorMaterial(), state.getColorMaterialFace(), record); // apply colors, if needed and not what is currently set. applyColor(ColorMaterial.Ambient, state.getAmbient(), state.getBackAmbient(), record); applyColor(ColorMaterial.Diffuse, state.getDiffuse(), state.getBackDiffuse(), record); applyColor(ColorMaterial.Emissive, state.getEmissive(), state.getBackEmissive(), record); applyColor(ColorMaterial.Specular, state.getSpecular(), state.getBackSpecular(), record); // set our shine applyShininess(state.getShininess(), state.getBackShininess(), record); } else { // apply defaults applyColorMaterial(MaterialState.DEFAULT_COLOR_MATERIAL, MaterialState.DEFAULT_COLOR_MATERIAL_FACE, record); applyColor(ColorMaterial.Ambient, MaterialState.DEFAULT_AMBIENT, MaterialState.DEFAULT_AMBIENT, record); applyColor(ColorMaterial.Diffuse, MaterialState.DEFAULT_DIFFUSE, MaterialState.DEFAULT_DIFFUSE, record); applyColor(ColorMaterial.Emissive, MaterialState.DEFAULT_EMISSIVE, MaterialState.DEFAULT_EMISSIVE, record); applyColor(ColorMaterial.Specular, MaterialState.DEFAULT_SPECULAR, MaterialState.DEFAULT_SPECULAR, record); applyShininess(MaterialState.DEFAULT_SHININESS, MaterialState.DEFAULT_SHININESS, record); } if (!record.isValid()) { record.validate(); } }
public static void apply(final MaterialState state) { // ask for the current state record final RenderContext context = ContextManager.getCurrentContext(); final MaterialStateRecord record = (MaterialStateRecord) context.getStateRecord(StateType.Material); context.setCurrentState(StateType.Material, state); if (state.isEnabled()) { // setup colormaterial, if changed. applyColorMaterial(state.getColorMaterial(), state.getColorMaterialFace(), record); // apply colors, if needed and not what is currently set. applyColor(ColorMaterial.Ambient, state.getAmbient(), state.getBackAmbient(), record); applyColor(ColorMaterial.Diffuse, state.getDiffuse(), state.getBackDiffuse(), record); applyColor(ColorMaterial.Emissive, state.getEmissive(), state.getBackEmissive(), record); applyColor(ColorMaterial.Specular, state.getSpecular(), state.getBackSpecular(), record); // set our shine applyShininess(state.getShininess(), state.getBackShininess(), record); } else { // apply defaults applyColorMaterial(MaterialState.DEFAULT_COLOR_MATERIAL, MaterialState.DEFAULT_COLOR_MATERIAL_FACE, record); applyColor(ColorMaterial.Ambient, MaterialState.DEFAULT_AMBIENT, MaterialState.DEFAULT_AMBIENT, record); applyColor(ColorMaterial.Diffuse, MaterialState.DEFAULT_DIFFUSE, MaterialState.DEFAULT_DIFFUSE, record); applyColor(ColorMaterial.Emissive, MaterialState.DEFAULT_EMISSIVE, MaterialState.DEFAULT_EMISSIVE, record); applyColor(ColorMaterial.Specular, MaterialState.DEFAULT_SPECULAR, MaterialState.DEFAULT_SPECULAR, record); applyShininess(MaterialState.DEFAULT_SHININESS, MaterialState.DEFAULT_SHININESS, record); } if (!record.isValid()) { record.validate(); } }