private void readShaderStatement(String statement) throws IOException { String[] split = statement.split(":"); if (split.length != 2) { throw new IOException("Shader statement syntax incorrect" + statement); } String[] typeAndLang = split[0].split(whitespacePattern); for (Shader.ShaderType shaderType : Shader.ShaderType.values()) { if (typeAndLang[0].equals(shaderType.toString() + "Shader")) { readShaderDefinition(shaderType, split[1].trim(), Arrays.copyOfRange(typeAndLang, 1, typeAndLang.length)); } } }
} else { shader = new Shader(); for (ShaderType type : ShaderType.values()) { String language = shaderLanguages.get(type); String shaderSourceAssetName = shaderNames.get(type);
/** * 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; }
} else { shader = new Shader(); for (ShaderType type : ShaderType.values()) { String language = shaderLanguages.get(type); String shaderSourceAssetName = shaderNames.get(type);
/** * 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; }
private void readShaderStatement(String statement) throws IOException { String[] split = statement.split(":"); if (split.length != 2) { throw new IOException("Shader statement syntax incorrect" + statement); } String[] typeAndLang = split[0].split(whitespacePattern); for (Shader.ShaderType shaderType : Shader.ShaderType.values()) { if (typeAndLang[0].equals(shaderType.toString() + "Shader")) { readShaderDefinition(shaderType, split[1].trim(), Arrays.copyOfRange(typeAndLang, 1, typeAndLang.length)); } } }