shader.addSource(type, shaderSourceAssetName, shaderSourceCode, definesSourceCode, language);
/** * Generate vertex and fragment shaders for the given technique * * @return a Shader program */ public Shader generateShader(String definesSourceCode) { if (techniqueDef == null) { throw new UnsupportedOperationException("The shaderGenerator was not " + "properly initialized, call " + "initialize(TechniqueDef) before any generation"); } String techniqueName = techniqueDef.getName(); ShaderGenerationInfo info = techniqueDef.getShaderGenerationInfo(); Shader shader = new Shader(); for (ShaderType type : ShaderType.values()) { String extension = type.getExtension(); String language = getLanguageAndVersion(type); String shaderSourceCode = buildShader(techniqueDef.getShaderNodes(), info, type); if (shaderSourceCode != null) { String shaderSourceAssetName = techniqueName + "." + extension; shader.addSource(type, shaderSourceAssetName, shaderSourceCode, definesSourceCode, language); } } techniqueDef = null; return shader; }
public void addSource(ShaderType type, String source){ addSource(type, source, null); }
public void addSource(ShaderType type, String source, String defines){ addSource(type, null, source, defines); }
shader.addSource(type, shaderSourceAssetName, shaderSourceCode, definesSourceCode, language);
/** * Generate vertex and fragment shaders for the given technique * * @return a Shader program */ public Shader generateShader(String definesSourceCode) { if (techniqueDef == null) { throw new UnsupportedOperationException("The shaderGenerator was not " + "properly initialized, call " + "initialize(TechniqueDef) before any generation"); } String techniqueName = techniqueDef.getName(); ShaderGenerationInfo info = techniqueDef.getShaderGenerationInfo(); Shader shader = new Shader(); for (ShaderType type : ShaderType.values()) { String extension = type.getExtension(); String language = getLanguageAndVersion(type); String shaderSourceCode = buildShader(techniqueDef.getShaderNodes(), info, type); if (shaderSourceCode != null) { String shaderSourceAssetName = techniqueName + "." + extension; shader.addSource(type, shaderSourceAssetName, shaderSourceCode, definesSourceCode, language); } } techniqueDef = null; return shader; }
/** * Load a vertex/fragment shader combo. * * @param key * @return */ public Shader loadShader(ShaderKey key){ // cache abuse in method // that doesn't use loaders/locators Shader s = (Shader) cache.getFromCache(key); if (s == null){ String vertName = key.getVertName(); String fragName = key.getFragName(); String vertSource = (String) loadAsset(new AssetKey(vertName)); String fragSource = (String) loadAsset(new AssetKey(fragName)); s = new Shader(key.getLanguage()); s.addSource(Shader.ShaderType.Vertex, vertName, vertSource, key.getDefines().getCompiled()); s.addSource(Shader.ShaderType.Fragment, fragName, fragSource, key.getDefines().getCompiled()); cache.addToCache(key, s); } return s; }