Shader Builder / support strings in formatColor
This commit is contained in:
@@ -26,13 +26,13 @@ export function formatArray(array) {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Will normalize and converts to string a color array compatible with GLSL.
|
* Will normalize and converts to string a color array compatible with GLSL.
|
||||||
* @param {Array<number>} colorArray Color in [r, g, b, a] array form, with RGB components in the
|
* @param {string|import("../color.js").Color} color Color either in string format or [r, g, b, a] array format,
|
||||||
* 0..255 range and the alpha component in the 0..1 range. Note that if the A component is
|
* with RGB components in the 0..255 range and the alpha component in the 0..1 range. Note that if the A component is
|
||||||
* missing, only 3 values will be output.
|
* missing, only 3 values will be output.
|
||||||
* @returns {string} The color components concatenated in `1.0, 1.0, 1.0, 1.0` form.
|
* @returns {string} The color components concatenated in `1.0, 1.0, 1.0, 1.0` form.
|
||||||
*/
|
*/
|
||||||
export function formatColor(colorArray) {
|
export function formatColor(color) {
|
||||||
return colorArray.map(function(c, i) {
|
return asArray(color).map(function(c, i) {
|
||||||
return i < 3 ? c / 255 : c;
|
return i < 3 ? c / 255 : c;
|
||||||
}).map(formatNumber).join(', ');
|
}).map(formatNumber).join(', ');
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,6 +29,11 @@ describe('ol.webgl.ShaderBuilder', function() {
|
|||||||
it('normalizes color and outputs numbers with dot separators', function() {
|
it('normalizes color and outputs numbers with dot separators', function() {
|
||||||
expect(formatColor([100, 0, 255, 1])).to.eql('0.39215686274509803, 0.0, 1.0, 1.0');
|
expect(formatColor([100, 0, 255, 1])).to.eql('0.39215686274509803, 0.0, 1.0, 1.0');
|
||||||
});
|
});
|
||||||
|
it('handles colors in string format', function() {
|
||||||
|
expect(formatColor('red')).to.eql('1.0, 0.0, 0.0, 1.0');
|
||||||
|
expect(formatColor('rgb(100, 0, 255)')).to.eql('0.39215686274509803, 0.0, 1.0, 1.0');
|
||||||
|
expect(formatColor('rgba(100, 0, 255, 0.3)')).to.eql('0.39215686274509803, 0.0, 1.0, 0.3');
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('getSymbolVertexShader', function() {
|
describe('getSymbolVertexShader', function() {
|
||||||
|
|||||||
Reference in New Issue
Block a user