function generateGradientTextures()

in gradients.js [1:47]


function generateGradientTextures(layerModel) {
    let vertical, debug;

    const gradientStrings = [];

    for (let i = 0; i < layerModel.groups.length; i++) {
        const colors = [];

        group = layerModel.groups[i];
        group.gradient.stops.forEach(function(stop) {
            colors.push({color: stop.color, stop: stop.pos})
        });
        vertical = group.gradient.orientation == 'vertical';

        const size = 512;

        // create canvas
        const textureCanvas = document.createElement('canvas');
        textureCanvas.width = size;
        textureCanvas.height = size;

        if (debug == true) {
            textureCanvas.style.position = 'absolute';
            textureCanvas.style.top = '0px';
            textureCanvas.style.left = '0px';
            document.body.appendChild(textureCanvas);
        }

        const context = textureCanvas.getContext('2d');

        context.rect(0, 0, size, size);

        const grd = vertical ? context.createLinearGradient(0, size, 0, 0) : context.createLinearGradient(0, 0, size, 0);
        for (let j = 0; j < colors.length; j++) {
            grd.addColorStop(colors[j].stop, colors[j].color);
        }
        context.fillStyle = grd;
        context.fillRect(0, 0, size, size);

        //return textureCanvas;

        gradientStrings[i] = textureCanvas.toDataURL();
    }
    // console.log(gradientStrings);

    return gradientStrings;
}