public int getUniformLocation(String name) {
        int location = -1;
        Integer locI = uniforms.get(name);
        if (locI == null) { // maybe it's not yet cached?
            location = GL20.glGetUniformLocation(program, name);
            uniforms.put(name, location);
        } else
            location = locI.intValue();
        // throw an exception if not found...
        if (location == -1 && strict)
            throw new IllegalArgumentException("no active uniform by name '" + name + "' "
        + "(disable strict compiling to suppress warnings)");
        return location;
    }