@Override
    public void updateConfiguration(@NonNull GLAudioVisualizationView.ColorsBuilder builder) {
        float[] bgColor = configuration.backgroundColor;
        float[] backgroundColor = builder.backgroundColor();
        bgUpdated = false;
        for (int i = 0; i < 4; i++) {
            bgUpdated |= Float.compare(bgColor[i], backgroundColor[i]) != 0;
        }
        if (bgUpdated) {
            configuration.backgroundColor = builder.backgroundColor();
        }
        if (layers == null)
            return;
        float[][] colors = builder.layerColors();
        for (int i = 0; i < layers.length; i++) {
            layers[i].setColor(colors[i]);
        }
    }
Utility method for compiling a OpenGL shader.

@param type       - Vertex or fragment shader type.
@param shaderCode - String containing the shader code.
@return - Returns an id for the shader.
library/src/main/java/com/cleveroad/audiovisualization/GLRenderer.java