package android.opengl.OpenGLES10; import java.util.ArrayList; public class UniformState<T> extends Uniform<T> { private String defineName; private ArrayList<ShaderFile > defineShaderFiles = new ArrayList<ShaderFile >(); public UniformState(ShaderFile defineShaderFile, String defineName, T value) { super(value); this.defineName = defineName; defineShaderFiles.add(defineShaderFile); } public void addDefineShaderFile(ShaderFile defineShaderFile) { defineShaderFiles.add(defineShaderFile); } public ArrayList<ShaderFile > getDefineShaderFiles() { return defineShaderFiles; } public ArrayList<ShaderFile > getAdditionalRequiredShaderFiles() { ArrayList<ShaderFile > shaderFiles = new ArrayList<ShaderFile >(); for (int i = 0; i < this.additionalRequiredShaderFiles.size(); i++) { if (this.additionalRequiredShaderFiles.get(i).getKey().equals(this.value) && (this.father == null || ((Uniform<Boolean>)(this.father)).getValue() == true)) { shaderFiles.add(this.additionalRequiredShaderFiles.get(i).getValue()); } } return shaderFiles; } public T getValue() { if (this.father == null || ((Uniform<Boolean>)(this.father)).getValue() == true) { return this.value; } else { return null; } } public String getDefine() { if (value instanceof Boolean) { String define = "#define "; define += defineName; define += " "; define += (Boolean) value ? "1" : "0"; define += "\n"; return define; } if (value instanceof Integer) { String define = "#define "; define += defineName; define += " "; define += value.toString(); define += "\n"; return define; } return null; } }