package org.geogebra.web.geogebra3D.web.euclidian3D.openGL.shaders; import org.geogebra.common.geogebra3D.main.FragmentShader; import org.geogebra.common.geogebra3D.main.VertexShader; /** * This class provides different shaders based on gpu/renderer information. */ public class ShaderProvider { /** * @param needsSmallFragmentShader * says if we need a small fragment shader * @param shiny * says if we use specular light to get it shiny * @return Fragment shader */ public static String getFragmentShader(boolean needsSmallFragmentShader, boolean shiny) { if (needsSmallFragmentShader) { return Shaders.INSTANCE.fragmentShaderSmaller().getText(); } if (shiny) { return FragmentShader.getFragmentShaderShiny(0.2f, true); } return FragmentShader.getFragmentShader(true); } /** * @param needsSmallFragmentShader * says if we need a small fragment shader * @param shiny * says if we use specular light to get it shiny * @return Vertex shader */ public static String getVertexShader(boolean needsSmallFragmentShader, boolean shiny) { if (!needsSmallFragmentShader && shiny) { return VertexShader.getVertexShaderShiny(true); } return VertexShader.getVertexShader(true); } }