in src/gui.js [144:222]
function addWebGLBlend(folder, config, layer, index) {
if (mode !== 'prod') {
const blendFolder = folder.addFolder('blend');
const color = blendFolder.addColor(config, 'blendColor' + index);
const colorEqFn = blendFolder.add(config, 'blendColorEqFn' + index, C.BLEND_FUNCS);
const colorEqFactor0 =
blendFolder.add(config, 'blendColorEqFactor0' + index, C.BLEND_FACTORS);
const colorEqFactor1 =
blendFolder.add(config, 'blendColorEqFactor1' + index, C.BLEND_FACTORS);
const alphaEqFn =
blendFolder.add(config, 'blendAlphaEqFn' + index, C.BLEND_FUNCS);
const alphaEqFactor0 =
blendFolder.add(config, 'blendAlphaEqFactor0' + index, C.BLEND_FACTORS);
const alphaEqFactor1 =
blendFolder.add(config, 'blendAlphaEqFactor1' + index, C.BLEND_FACTORS);
//folder.open();
color.onFinishChange(updateWebGLBlend(index, (blend, value) => {
blend.color = { r: value[0], g: value[1], b: value[2], a: value[3] }
return blend;
}));
colorEqFn.onFinishChange(updateWebGLBlend(index, (blend, value) => {
blend.colorEq[0] = C.BLEND_FUNCS_IDS[value];
return blend;
}));
colorEqFactor0.onFinishChange(updateWebGLBlend(index, (blend, value) => {
blend.colorEq[1] = C.BLEND_FACTORS_IDS[value];
return blend;
}));
colorEqFactor1.onFinishChange(updateWebGLBlend(index, (blend, value) => {
blend.colorEq[2] = C.BLEND_FACTORS_IDS[value];
return blend;
}));
alphaEqFn.onFinishChange(updateWebGLBlend(index, (blend, value) => {
blend.alphaEq[0] = C.BLEND_FUNCS_IDS[value];
return blend;
}));
alphaEqFactor0.onFinishChange(updateWebGLBlend(index, (blend, value) => {
blend.alphaEq[1] = C.BLEND_FACTORS_IDS[value];
return blend;
}));
alphaEqFactor1.onFinishChange(updateWebGLBlend(index, (blend, value) => {
blend.alphaEq[2] = C.BLEND_FACTORS_IDS[value];
return blend;
}));
} else { // mode == 'prod'
const blendSet = folder.add(config, 'blendSet' + index, C.BLEND_SETS).name('blend');
// const blendColor = folder.addColor(config, 'blendColor' + index).name('color');
// blendColor.onFinishChange(updateWebGLBlend(index, (blend, value) => {
// blend.color = { r: value[0], g: value[1], b: value[2], a: value[3] }
// return blend;
// }));
blendSet.onFinishChange((value) => {
blendConfig = value.split(',');
const color = config['blendColor'+index] || [ 0, 0, 0, 1 ];
const newBlend =
{ color: { r: color[0], g: color[1], b: color[2], a: color[3] }
, colorEq: [ C.BLEND_FUNCS_IDS[C.BLEND_FUNCS[blendConfig[0]]]
, C.BLEND_FACTORS_IDS[C.BLEND_FACTORS[blendConfig[1]]]
, C.BLEND_FACTORS_IDS[C.BLEND_FACTORS[blendConfig[2]]]
]
, alphaEq: [ C.BLEND_FUNCS_IDS[C.BLEND_FUNCS[blendConfig[3]]]
, C.BLEND_FACTORS_IDS[C.BLEND_FACTORS[blendConfig[4]]]
, C.BLEND_FACTORS_IDS[C.BLEND_FACTORS[blendConfig[5]]]
]
}
funcs.changeWGLBlend(index, newBlend);
// blend.alphaEq[2] = BLEND_FACTORS_IDS[value];
//return blend;
});
}
}