// Path: src/main/java/yk/senjin/shaders/uniforms/UniformVariable.java
// abstract public class UniformVariable {
//     public static UniformVariable createVariable(final String name, final float a, final float b) {
//         return new Uniform2f(name, a, b);
//     }
// 
//     public static UniformVariable createVariable(final String name, final float a, final float b,
//                                                  final float c) {
//         return new Uniform3f(name, a, b, c);
//     }
// 
//     public static UniformVariable createVariable(final String name, final float a, final float b,
//                                                  final float c, final float d) {
//         return new Uniform4f(name, a, b, c, d);
//     }
// 
//     public static UniformVariable createVariable(final String name, final int value) {
//         return new Uniform1i(name, value);
//     }
// 
//     public String name;
// 
//     public int index;
// 
//     public UniformVariable(String name) {
//         this.name = name;
//     }
// 
//     public void setValue(Object o) {
//         BadException.notImplemented();
//     }
// 
//     public void initForProgram(final int program) {
//         index = GL20.glGetUniformLocation(program, ShaderHandler.getBufferedString(name));
//     }
// 
//     abstract public void plug();
// }


import yk.jcommon.collections.YMap;
import yk.jcommon.utils.BadException;
import yk.senjin.shaders.uniforms.UniformVariable;
import java.util.Map;
import static yk.jcommon.collections.YHashMap.hm;
package yk.senjin.shaders.gshader;




public class ShaderUserMap<V extends VertexShaderParent, F extends FragmentShaderParent> extends ShaderUser<V, F> {
    public YMap<String, Object> shaderParams = hm();

    public ShaderUserMap(GProgram<V, F> program, Class inputType) {
        super(program, inputType);
    }

    @Override
    public void updateUniforms() {
        a:for (Map.Entry<String, Object> entry : shaderParams.entrySet()) {
// Path: src/main/java/yk/senjin/shaders/uniforms/UniformVariable.java
// abstract public class UniformVariable {
//     public static UniformVariable createVariable(final String name, final float a, final float b) {
//         return new Uniform2f(name, a, b);
//     }
// 
//     public static UniformVariable createVariable(final String name, final float a, final float b,
//                                                  final float c) {
//         return new Uniform3f(name, a, b, c);
//     }
// 
//     public static UniformVariable createVariable(final String name, final float a, final float b,
//                                                  final float c, final float d) {
//         return new Uniform4f(name, a, b, c, d);
//     }
// 
//     public static UniformVariable createVariable(final String name, final int value) {
//         return new Uniform1i(name, value);
//     }
// 
//     public String name;
// 
//     public int index;
// 
//     public UniformVariable(String name) {
//         this.name = name;
//     }
// 
//     public void setValue(Object o) {
//         BadException.notImplemented();
//     }
// 
//     public void initForProgram(final int program) {
//         index = GL20.glGetUniformLocation(program, ShaderHandler.getBufferedString(name));
//     }
// 
//     abstract public void plug();
// }


// Path: src/main/java/yk/senjin/shaders/gshader/ShaderUserMap.java
import yk.jcommon.collections.YMap;
import yk.jcommon.utils.BadException;
import yk.senjin.shaders.uniforms.UniformVariable;
import java.util.Map;
import static yk.jcommon.collections.YHashMap.hm;

package yk.senjin.shaders.gshader;




public class ShaderUserMap<V extends VertexShaderParent, F extends FragmentShaderParent> extends ShaderUser<V, F> {
    public YMap<String, Object> shaderParams = hm();

    public ShaderUserMap(GProgram<V, F> program, Class inputType) {
        super(program, inputType);
    }

    @Override
    public void updateUniforms() {
        a:for (Map.Entry<String, Object> entry : shaderParams.entrySet()) {
            for (UniformVariable uniform : uniforms) {