| 997 | } |
| 998 | |
| 999 | _toShaders(shaders, keys,defs) { |
| 1000 | for (let i = 0, len0 = defs.length; i < len0; ++i) { |
| 1001 | let def = defs[i]; |
| 1002 | let element_str = []; |
| 1003 | for (let j = 0, len1 = def.elements.length; j < len1; j++) { |
| 1004 | element_str.push(def.elements[j]); |
| 1005 | } |
| 1006 | let filters = def.filters.filters; |
| 1007 | let filterStr = []; |
| 1008 | for (let attr in filters) { |
| 1009 | filterStr.push(filters[attr].id); |
| 1010 | } |
| 1011 | let key = element_str.join("/") + "::" + def.attachment + "_" + filterStr.join("_"); |
| 1012 | keys.push(key); |
| 1013 | let shader = shaders[key] = (shaders[key] || {}); |
| 1014 | //shader.frames = []; |
| 1015 | shader.zoom = CartoCSS.Tree.Zoom.all; |
| 1016 | let props = def.toJS(this.env); |
| 1017 | for (let v in props) { |
| 1018 | (shader[v] = (shader[v] || [])).push(props[v].join('\n')) |
| 1019 | } |
| 1020 | } |
| 1021 | } |
| 1022 | /** |
| 1023 | * @function CartoCSS.prototype.getShaders |
| 1024 | * @description 获取 CartoCSS 着色器。 |