public MaterialDef loadMaterialDef(List<Statement> roots, AssetManager manager, AssetKey key) throws IOException { this.key = key; this.assetManager = manager; loadFromRoot(roots); return materialDef; }
private void readTransparentStatement(String statement) throws IOException{ String[] split = statement.split(whitespacePattern); if (split.length != 2){ throw new IOException("Transparent statement syntax incorrect"); } material.setTransparent(parseBoolean(split[1])); }
if (extending){ if (statType.equals("MaterialParameters")){ readExtendingMaterialParams(statement.getContents()); }else if (statType.equals("AdditionalRenderState")){ readAdditionalRenderState(statement.getContents()); }else if (statType.equals("Transparent")){ readTransparentStatement(statement.getLine()); readTechnique(statement); }else if (statType.equals("MaterialParameters")){ readMaterialParams(statement.getContents()); }else{ throw new MatParseException("Expected material statement, got '"+statType+"'", statement);
split[0].equals("TessellationControlShader") || split[0].equals("TessellationEvaluationShader")) { readShaderStatement(statement.getLine()); }else if (split[0].equals("LightMode")){ readLightMode(statement.getLine()); }else if (split[0].equals("LightSpace")){ readLightSpace(statement.getLine()); }else if (split[0].equals("ShadowMode")){ readShadowMode(statement.getLine()); }else if (split[0].equals("WorldParameters")){ readWorldParams(statement.getContents()); }else if (split[0].equals("RenderState")){ readRenderState(statement.getContents()); }else if (split[0].equals("ForcedRenderState")){ readForcedRenderState(statement.getContents()); }else if (split[0].equals("Defines")){ readDefines(statement.getContents()); } else if (split[0].equals("ShaderNodesDefinitions")) { initNodesLoader(); if (isUseNodes) { nodesLoaderDelegate.readNodesDefinitions(statement.getContents()); initNodesLoader(); if (isUseNodes) { nodesLoaderDelegate.readVertexShaderNodes(statement.getContents()); initNodesLoader(); if (isUseNodes) { nodesLoaderDelegate.readFragmentShaderNodes(statement.getContents());
private void readTechniqueStatement(Statement statement) throws IOException{ String[] split = statement.getLine().split("[ \\{]"); if (split[0].equals("VertexShader") || split[0].equals("FragmentShader")){ readShaderStatement(statement.getLine()); }else if (split[0].equals("LightMode")){ readLightMode(statement.getLine()); }else if (split[0].equals("ShadowMode")){ readShadowMode(statement.getLine()); }else if (split[0].equals("WorldParameters")){ readWorldParams(statement.getContents()); }else if (split[0].equals("RenderState")){ readRenderState(statement.getContents()); }else if (split[0].equals("Defines")){ readDefines(statement.getContents()); }else{ throwIfNequal(null, split[0]); } }
private void readMaterialParams(List<Statement> paramsList) throws IOException{ for (Statement statement : paramsList){ readParam(statement.getLine()); } }
private void readDefines(List<Statement> defineList) throws IOException{ for (Statement statement : defineList){ readDefine(statement.getLine()); } }
private void readRenderStateStatement(String statement) throws IOException{ String[] split = statement.split(whitespacePattern); if (split[0].equals("Wireframe")){ renderState.setWireframe(parseBoolean(split[1])); }else if (split[0].equals("FaceCull")){ renderState.setFaceCullMode(FaceCullMode.valueOf(split[1])); }else if (split[0].equals("DepthWrite")){ renderState.setDepthWrite(parseBoolean(split[1])); }else if (split[0].equals("DepthTest")){ renderState.setDepthTest(parseBoolean(split[1])); }else if (split[0].equals("Blend")){ renderState.setBlendMode(BlendMode.valueOf(split[1])); }else if (split[0].equals("AlphaTestFalloff")){ renderState.setAlphaTest(true); renderState.setAlphaFallOff(Float.parseFloat(split[1])); }else if (split[0].equals("PolyOffset")){ float factor = Float.parseFloat(split[1]); float units = Float.parseFloat(split[2]); renderState.setPolyOffset(factor, units); }else if (split[0].equals("ColorWrite")){ renderState.setColorWrite(parseBoolean(split[1])); }else if (split[0].equals("PointSprite")){ renderState.setPointSprite(parseBoolean(split[1])); }else{ throwIfNequal(null, split[0]); } }
split[0].equals("TessellationControlShader") || split[0].equals("TessellationEvaluationShader")) { readShaderStatement(statement.getLine()); }else if (split[0].equals("LightMode")){ readLightMode(statement.getLine()); }else if (split[0].equals("LightSpace")){ readLightSpace(statement.getLine()); }else if (split[0].equals("ShadowMode")){ readShadowMode(statement.getLine()); }else if (split[0].equals("WorldParameters")){ readWorldParams(statement.getContents()); }else if (split[0].equals("RenderState")){ readRenderState(statement.getContents()); }else if (split[0].equals("ForcedRenderState")){ readForcedRenderState(statement.getContents()); }else if (split[0].equals("Defines")){ readDefines(statement.getContents()); } else if (split[0].equals("ShaderNodesDefinitions")) { initNodesLoader(); if (isUseNodes) { nodesLoaderDelegate.readNodesDefinitions(statement.getContents()); initNodesLoader(); if (isUseNodes) { nodesLoaderDelegate.readVertexShaderNodes(statement.getContents()); initNodesLoader(); if (isUseNodes) { nodesLoaderDelegate.readFragmentShaderNodes(statement.getContents());
private void readMaterialParams(List<Statement> paramsList) throws IOException{ for (Statement statement : paramsList){ readParam(statement.getLine()); } }
private void readDefines(List<Statement> defineList) throws IOException{ for (Statement statement : defineList){ readDefine(statement.getLine()); } }
if (extending){ if (statType.equals("MaterialParameters")){ readExtendingMaterialParams(statement.getContents()); }else if (statType.equals("AdditionalRenderState")){ readAdditionalRenderState(statement.getContents()); }else if (statType.equals("Transparent")){ readTransparentStatement(statement.getLine()); readTechnique(statement); }else if (statType.equals("MaterialParameters")){ readMaterialParams(statement.getContents()); }else{ throw new IOException("Expected material statement, got '"+statType+"'");
public Object load(AssetInfo info) throws IOException { this.assetManager = info.getManager(); InputStream in = info.openStream(); try { key = info.getKey(); if (key.getExtension().equals("j3m") && !(key instanceof MaterialKey)) { throw new IOException("Material instances must be loaded via MaterialKey"); } else if (key.getExtension().equals("j3md") && key instanceof MaterialKey) { throw new IOException("Material definitions must be loaded via AssetKey"); } loadFromRoot(BlockLanguageParser.parse(in)); } finally { if (in != null){ in.close(); } } if (material != null){ // material implementation return material; }else{ // material definition return materialDef; } }
private void readRenderStateStatement(Statement statement) throws IOException{ String[] split = statement.getLine().split(whitespacePattern); if (split[0].equals("Wireframe")){ renderState.setWireframe(parseBoolean(split[1])); }else if (split[0].equals("FaceCull")){ renderState.setFaceCullMode(FaceCullMode.valueOf(split[1])); }else if (split[0].equals("DepthWrite")){ renderState.setDepthWrite(parseBoolean(split[1])); }else if (split[0].equals("DepthTest")){ renderState.setDepthTest(parseBoolean(split[1])); }else if (split[0].equals("Blend")){ renderState.setBlendMode(BlendMode.valueOf(split[1])); renderState.setPolyOffset(factor, units); }else if (split[0].equals("ColorWrite")){ renderState.setColorWrite(parseBoolean(split[1])); }else if (split[0].equals("PointSprite")){
private void readMaterialParams(List<Statement> paramsList) throws IOException{ for (Statement statement : paramsList){ readParam(statement.getLine()); } }
private void readDefines(List<Statement> defineList) throws IOException{ for (Statement statement : defineList){ readDefine(statement.getLine()); } }
if (extending){ if (statType.equals("MaterialParameters")){ readExtendingMaterialParams(statement.getContents()); }else if (statType.equals("AdditionalRenderState")){ readAdditionalRenderState(statement.getContents()); }else if (statType.equals("Transparent")){ readTransparentStatement(statement.getLine()); readTechnique(statement); }else if (statType.equals("MaterialParameters")){ readMaterialParams(statement.getContents()); }else{ throw new MatParseException("Expected material statement, got '"+statType+"'", statement);
public MaterialDef loadMaterialDef(List<Statement> roots, AssetManager manager, AssetKey key) throws IOException { this.key = key; this.assetManager = manager; loadFromRoot(roots); return materialDef; }
private void readTransparentStatement(String statement) throws IOException{ String[] split = statement.split(whitespacePattern); if (split.length != 2){ throw new IOException("Transparent statement syntax incorrect"); } material.setTransparent(parseBoolean(split[1])); }
public Object load(AssetInfo info) throws IOException { this.assetManager = info.getManager(); InputStream in = info.openStream(); try { key = info.getKey(); if (key.getExtension().equals("j3m") && !(key instanceof MaterialKey)) { throw new IOException("Material instances must be loaded via MaterialKey"); } else if (key.getExtension().equals("j3md") && key instanceof MaterialKey) { throw new IOException("Material definitions must be loaded via AssetKey"); } loadFromRoot(BlockLanguageParser.parse(in)); } finally { if (in != null){ in.close(); } } if (material != null){ // material implementation return material; }else{ // material definition return materialDef; } }