int index = findShaderIndexFromVersion(shaderNode, type); String shaderPath = shaderNode.getDefinition().getShadersPath().get(index); Map<String, String> sources = (Map<String, String>) assetManager.loadAsset(new ShaderAssetKey(shaderPath, false)); appendNodeDeclarationAndMain(loadedSource, sourceDeclaration, source, shaderNode, info, shaderPath);
/** * 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; }
StringBuilder source = new StringBuilder(); generateUniforms(sourceDeclaration, info, type); generateAttributes(sourceDeclaration, info); generateVaryings(sourceDeclaration, info, type); generateStartOfMainSection(source, info, type); generateDeclarationAndMainBody(shaderNodes, sourceDeclaration, source, info, type); generateEndOfMainSection(source, info, type); return moveExtensionsUp(sourceDeclaration);
throw new IllegalArgumentException("Syntax error in "+ shaderPath +". Cannot find 'void main(){' in \n"+ loadedSource); generateDeclarativeSection(sourceDeclaration, shaderNode, sourceParts[0], info); generateNodeMainSection(source, shaderNode, sourceParts[1], info); } else { generateNodeMainSection(source, shaderNode, loadedSource, info);
+ "make sure assetManager.getGenerator(caps) has been called"); shaderGenerator.initialize(this); shader = shaderGenerator.generateShader(definesSourceCode); } else { shader = new Shader();
throw new IllegalArgumentException("Syntax error in "+ shaderPath +". Cannot find 'void main(){' in \n"+ loadedSource); generateDeclarativeSection(sourceDeclaration, shaderNode, sourceParts[0], info); generateNodeMainSection(source, shaderNode, sourceParts[1], info); } else { generateNodeMainSection(source, shaderNode, loadedSource, info);
+ "make sure assetManager.getGenerator(caps) has been called"); shaderGenerator.initialize(this); shader = shaderGenerator.generateShader(definesSourceCode); } else { shader = new Shader();
StringBuilder source = new StringBuilder(); generateUniforms(sourceDeclaration, info, type); generateAttributes(sourceDeclaration, info); generateVaryings(sourceDeclaration, info, type); generateStartOfMainSection(source, info, type); generateDeclarationAndMainBody(shaderNodes, sourceDeclaration, source, info, type); generateEndOfMainSection(source, info, type); return moveExtensionsUp(sourceDeclaration);
/** * 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; }
int index = findShaderIndexFromVersion(shaderNode, type); String shaderPath = shaderNode.getDefinition().getShadersPath().get(index); Map<String, String> sources = (Map<String, String>) assetManager.loadAsset(new ShaderAssetKey(shaderPath, false)); appendNodeDeclarationAndMain(loadedSource, sourceDeclaration, source, shaderNode, info, shaderPath);