J3mdTechniqueDefWriter techniqueWriter = new J3mdTechniqueDefWriter(); List<TechniqueDef> defs = matDef.getTechniqueDefs(key); for (TechniqueDef def : defs) { techniqueWriter.write(def, matDef.getMaterialParams(), out);
out.write(formatCondition(shaderNode.getCondition(), matParams)); out.write("\n"); out.write(" InputMappings {\n"); for (VariableMapping mapping : inputMapping) { writeVariableMapping(out, shaderNode, mapping, matParams); out.write(" OutputMappings {\n"); for (VariableMapping mapping : outputMapping) { writeVariableMapping(out, shaderNode, mapping, matParams);
private void writeDefines(TechniqueDef techniqueDef, Collection<MatParam> matParams, OutputStreamWriter out) throws IOException { out.write(" Defines {\n"); for (int i = 0; i < techniqueDef.getDefineNames().length; i++) { String matParamName = getMatParamNameForDefineId(techniqueDef, matParams, i); if (matParamName != null) { String defineName = techniqueDef.getDefineNames()[i]; out.write(" "); out.write(defineName); out.write(": "); out.write(matParamName); out.write("\n"); } } out.write(" }\n\n"); }
writeShaders(techniqueDef, out); writeWorldParams(techniqueDef, out); writeShaderNodes(techniqueDef, matParams, out); writeDefines(techniqueDef, matParams, out); if(rs != null){ out.write(" RenderState {\n"); writeRenderState(rs, out); out.write(" }\n\n"); if(rs != null){ out.write(" ForcedRenderState {\n"); writeRenderState(rs, out); out.write(" }\n\n");
private void writeShaderNodes(TechniqueDef techniqueDef, Collection<MatParam> matParams, OutputStreamWriter out) throws IOException { out.write(" VertexShaderNodes {\n"); for (ShaderNode shaderNode : techniqueDef.getShaderNodes()) { if(shaderNode.getDefinition().getType() == Shader.ShaderType.Vertex){ writeShaderNode(out, shaderNode, matParams); } } out.write(" }\n\n"); out.write(" FragmentShaderNodes {\n"); for (ShaderNode shaderNode : techniqueDef.getShaderNodes()) { if(shaderNode.getDefinition().getType() == Shader.ShaderType.Fragment){ writeShaderNode(out, shaderNode, matParams); } } out.write(" }\n\n"); }
private void writeRenderState(RenderState rs, OutputStreamWriter out) throws IOException { RenderState defRs = RenderState.DEFAULT; if(rs.getBlendMode() != defRs.getBlendMode()) { writeRenderStateAttribute(out, "Blend", rs.getBlendMode().name()); writeRenderStateAttribute(out, "Wireframe", rs.isWireframe()?"On":"Off"); writeRenderStateAttribute(out, "FaceCull", rs.getFaceCullMode().name()); writeRenderStateAttribute(out, "DepthWrite", rs.isDepthWrite()?"On":"Off"); writeRenderStateAttribute(out, "DepthTest", rs.isDepthTest()?"On":"Off"); writeRenderStateAttribute(out, "BlendEquation", rs.getBlendEquation().name()); writeRenderStateAttribute(out, "BlendEquationAlpha", rs.getBlendEquationAlpha().name()); writeRenderStateAttribute(out, "PolyOffset", rs.getPolyOffsetFactor() + " " + rs.getPolyOffsetUnits()); writeRenderStateAttribute(out, "ColorWrite", rs.isColorWrite()?"On":"Off"); writeRenderStateAttribute(out, "DepthFunc", rs.getDepthFunc().name()); writeRenderStateAttribute(out, "LineWidth", Float.toString(rs.getLineWidth()));
out.write(formatCondition(mapping.getCondition(), matParams));
writeShaders(techniqueDef, out); writeWorldParams(techniqueDef, out); writeShaderNodes(techniqueDef, matParams, out); writeDefines(techniqueDef, matParams, out); if(rs != null){ out.write(" RenderState {\n"); writeRenderState(rs, out); out.write(" }\n\n"); if(rs != null){ out.write(" ForcedRenderState {\n"); writeRenderState(rs, out); out.write(" }\n\n");
private void writeShaderNodes(TechniqueDef techniqueDef, Collection<MatParam> matParams, OutputStreamWriter out) throws IOException { out.write(" VertexShaderNodes {\n"); for (ShaderNode shaderNode : techniqueDef.getShaderNodes()) { if(shaderNode.getDefinition().getType() == Shader.ShaderType.Vertex){ writeShaderNode(out, shaderNode, matParams); } } out.write(" }\n\n"); out.write(" FragmentShaderNodes {\n"); for (ShaderNode shaderNode : techniqueDef.getShaderNodes()) { if(shaderNode.getDefinition().getType() == Shader.ShaderType.Fragment){ writeShaderNode(out, shaderNode, matParams); } } out.write(" }\n\n"); }
private void writeRenderState(RenderState rs, OutputStreamWriter out) throws IOException { RenderState defRs = RenderState.DEFAULT; if(rs.getBlendMode() != defRs.getBlendMode()) { writeRenderStateAttribute(out, "Blend", rs.getBlendMode().name()); writeRenderStateAttribute(out, "Wireframe", rs.isWireframe()?"On":"Off"); writeRenderStateAttribute(out, "FaceCull", rs.getFaceCullMode().name()); writeRenderStateAttribute(out, "DepthWrite", rs.isDepthWrite()?"On":"Off"); writeRenderStateAttribute(out, "DepthTest", rs.isDepthTest()?"On":"Off"); writeRenderStateAttribute(out, "BlendEquation", rs.getBlendEquation().name()); writeRenderStateAttribute(out, "BlendEquationAlpha", rs.getBlendEquationAlpha().name()); writeRenderStateAttribute(out, "PolyOffset", rs.getPolyOffsetFactor() + " " + rs.getPolyOffsetUnits()); writeRenderStateAttribute(out, "ColorWrite", rs.isColorWrite()?"On":"Off"); writeRenderStateAttribute(out, "DepthFunc", rs.getDepthFunc().name()); writeRenderStateAttribute(out, "LineWidth", Float.toString(rs.getLineWidth()));
private void writeVariableMapping(OutputStreamWriter out, ShaderNode shaderNode, VariableMapping mapping, Collection<MatParam> matParams) throws IOException { out.write(" "); if(!mapping.getLeftVariable().getNameSpace().equals(shaderNode.getName())) { out.write(mapping.getLeftVariable().getNameSpace()); out.write("."); } out.write(mapping.getLeftVariable().getName()); if(!mapping.getLeftSwizzling().equals("")){ out.write("."); out.write(mapping.getLeftSwizzling()); } out.write(" = "); if(!mapping.getRightVariable().getNameSpace().equals(shaderNode.getName())) { out.write(mapping.getRightVariable().getNameSpace()); out.write("."); } out.write(mapping.getRightVariable().getName().replaceFirst("g_","").replaceFirst("m_","")); if(!mapping.getRightSwizzling().equals("")){ out.write("."); out.write(mapping.getRightSwizzling()); } if (mapping.getCondition() != null){ out.write(" : "); out.write(formatCondition(mapping.getCondition(),matParams)); } out.write("\n"); }
J3mdTechniqueDefWriter techniqueWriter = new J3mdTechniqueDefWriter(); List<TechniqueDef> defs = matDef.getTechniqueDefs(key); for (TechniqueDef def : defs) { techniqueWriter.write(def, matDef.getMaterialParams(), out);
private void writeShaderNode( OutputStreamWriter out, ShaderNode shaderNode, Collection<MatParam> matParams) throws IOException { out.write(" ShaderNode "); out.write(shaderNode.getName()); out.write(" {\n"); if (shaderNode.getCondition() != null){ out.write(" Condition: "); out.write(formatCondition(shaderNode.getCondition(), matParams)); out.write("\n"); } out.write(" Definition: "); out.write(shaderNode.getDefinition().getName()); out.write(": "); out.write(shaderNode.getDefinition().getPath()); out.write("\n"); out.write(" InputMappings {\n"); for (VariableMapping mapping : shaderNode.getInputMapping()) { writeVariableMapping(out, shaderNode, mapping, matParams); } out.write(" }\n"); out.write(" OutputMappings {\n"); for (VariableMapping mapping : shaderNode.getOutputMapping()) { writeVariableMapping(out, shaderNode, mapping, matParams); } out.write(" }\n"); out.write(" }\n"); }
private void writeDefines(TechniqueDef techniqueDef, Collection<MatParam> matParams, OutputStreamWriter out) throws IOException { out.write(" Defines {\n"); for (int i = 0; i < techniqueDef.getDefineNames().length; i++) { String matParamName = getMatParamNameForDefineId(techniqueDef, matParams, i); if (matParamName != null) { String defineName = techniqueDef.getDefineNames()[i]; out.write(" "); out.write(defineName); out.write(": "); out.write(matParamName); out.write("\n"); } } out.write(" }\n\n"); }