From 75b40a60c087eb59f6455ea36ecb236b9787f148 Mon Sep 17 00:00:00 2001 From: Tim Schaub Date: Tue, 8 Oct 2013 14:12:04 -0600 Subject: [PATCH] Remove ol.layer.Vector2 and associated renderer --- src/ol/layer/vectorlayer2.exports | 1 - src/ol/layer/vectorlayer2.js | 26 --- src/ol/renderer/webgl/webglmaprenderer.js | 4 - ...webglvectorlayer2linestringcollection.glsl | 19 -- ...lvectorlayer2linestringcollectionshader.js | 102 -------- .../webglvectorlayer2pointcollection.glsl | 21 -- .../webglvectorlayer2pointcollectionshader.js | 108 --------- .../webgl/webglvectorlayer2renderer.js | 219 ------------------ 8 files changed, 500 deletions(-) delete mode 100644 src/ol/layer/vectorlayer2.exports delete mode 100644 src/ol/layer/vectorlayer2.js delete mode 100644 src/ol/renderer/webgl/webglvectorlayer2linestringcollection.glsl delete mode 100644 src/ol/renderer/webgl/webglvectorlayer2linestringcollectionshader.js delete mode 100644 src/ol/renderer/webgl/webglvectorlayer2pointcollection.glsl delete mode 100644 src/ol/renderer/webgl/webglvectorlayer2pointcollectionshader.js delete mode 100644 src/ol/renderer/webgl/webglvectorlayer2renderer.js diff --git a/src/ol/layer/vectorlayer2.exports b/src/ol/layer/vectorlayer2.exports deleted file mode 100644 index 576bf755fd..0000000000 --- a/src/ol/layer/vectorlayer2.exports +++ /dev/null @@ -1 +0,0 @@ -@exportSymbol ol.layer.Vector2 diff --git a/src/ol/layer/vectorlayer2.js b/src/ol/layer/vectorlayer2.js deleted file mode 100644 index cdfeb4bac4..0000000000 --- a/src/ol/layer/vectorlayer2.js +++ /dev/null @@ -1,26 +0,0 @@ -goog.provide('ol.layer.Vector2'); - -goog.require('ol.layer.Layer'); -goog.require('ol.source.Vector2'); - - - -/** - * This is an internal class that will be removed from the API. - * @constructor - * @extends {ol.layer.Layer} - * @param {ol.layer.LayerOptions} options Options. - * @todo stability experimental - */ -ol.layer.Vector2 = function(options) { - goog.base(this, options); -}; -goog.inherits(ol.layer.Vector2, ol.layer.Layer); - - -/** - * @return {ol.source.Vector2} Source. - */ -ol.layer.Vector2.prototype.getVectorSource = function() { - return /** @type {ol.source.Vector2} */ (this.getSource()); -}; diff --git a/src/ol/renderer/webgl/webglmaprenderer.js b/src/ol/renderer/webgl/webglmaprenderer.js index dec0d82d38..9ddf72163a 100644 --- a/src/ol/renderer/webgl/webglmaprenderer.js +++ b/src/ol/renderer/webgl/webglmaprenderer.js @@ -19,11 +19,9 @@ goog.require('ol.Tile'); goog.require('ol.css'); goog.require('ol.layer.Image'); goog.require('ol.layer.Tile'); -goog.require('ol.layer.Vector2'); goog.require('ol.renderer.Map'); goog.require('ol.renderer.webgl.ImageLayer'); goog.require('ol.renderer.webgl.TileLayer'); -goog.require('ol.renderer.webgl.VectorLayer2'); goog.require('ol.renderer.webgl.map.shader.Color'); goog.require('ol.renderer.webgl.map.shader.Default'); goog.require('ol.size'); @@ -305,8 +303,6 @@ ol.renderer.webgl.Map.prototype.createLayerRenderer = function(layer) { return new ol.renderer.webgl.TileLayer(this, layer); } else if (layer instanceof ol.layer.Image) { return new ol.renderer.webgl.ImageLayer(this, layer); - } else if (layer instanceof ol.layer.Vector2) { - return new ol.renderer.webgl.VectorLayer2(this, layer); } else { goog.asserts.fail(); return null; diff --git a/src/ol/renderer/webgl/webglvectorlayer2linestringcollection.glsl b/src/ol/renderer/webgl/webglvectorlayer2linestringcollection.glsl deleted file mode 100644 index 0877de55b1..0000000000 --- a/src/ol/renderer/webgl/webglvectorlayer2linestringcollection.glsl +++ /dev/null @@ -1,19 +0,0 @@ -//! NAMESPACE=ol.renderer.webgl.vectorlayer2.shader.LineStringCollection -//! CLASS=ol.renderer.webgl.vectorlayer2.shader.LineStringCollection - - -//! VERTEX -attribute vec2 a_position; -uniform mat4 u_modelViewMatrix; - -void main(void) { - gl_Position = u_modelViewMatrix * vec4(a_position, 0., 1.); -} - - -//! FRAGMENT -uniform vec4 u_color; - -void main(void) { - gl_FragColor = u_color; -} diff --git a/src/ol/renderer/webgl/webglvectorlayer2linestringcollectionshader.js b/src/ol/renderer/webgl/webglvectorlayer2linestringcollectionshader.js deleted file mode 100644 index 9f08d99191..0000000000 --- a/src/ol/renderer/webgl/webglvectorlayer2linestringcollectionshader.js +++ /dev/null @@ -1,102 +0,0 @@ -// This file is automatically generated, do not edit -goog.provide('ol.renderer.webgl.vectorlayer2.shader.LineStringCollection'); - -goog.require('ol.webgl.shader'); - - - -/** - * @constructor - * @extends {ol.webgl.shader.Fragment} - */ -ol.renderer.webgl.vectorlayer2.shader.LineStringCollectionFragment = function() { - goog.base(this, ol.renderer.webgl.vectorlayer2.shader.LineStringCollectionFragment.SOURCE); -}; -goog.inherits(ol.renderer.webgl.vectorlayer2.shader.LineStringCollectionFragment, ol.webgl.shader.Fragment); -goog.addSingletonGetter(ol.renderer.webgl.vectorlayer2.shader.LineStringCollectionFragment); - - -/** - * @const - * @type {string} - */ -ol.renderer.webgl.vectorlayer2.shader.LineStringCollectionFragment.DEBUG_SOURCE = 'precision mediump float;\nuniform vec4 u_color;\n\nvoid main(void) {\n gl_FragColor = u_color;\n}\n'; - - -/** - * @const - * @type {string} - */ -ol.renderer.webgl.vectorlayer2.shader.LineStringCollectionFragment.OPTIMIZED_SOURCE = 'precision mediump float;uniform vec4 c;void main(void){gl_FragColor=c;}'; - - -/** - * @const - * @type {string} - */ -ol.renderer.webgl.vectorlayer2.shader.LineStringCollectionFragment.SOURCE = goog.DEBUG ? - ol.renderer.webgl.vectorlayer2.shader.LineStringCollectionFragment.DEBUG_SOURCE : - ol.renderer.webgl.vectorlayer2.shader.LineStringCollectionFragment.OPTIMIZED_SOURCE; - - - -/** - * @constructor - * @extends {ol.webgl.shader.Vertex} - */ -ol.renderer.webgl.vectorlayer2.shader.LineStringCollectionVertex = function() { - goog.base(this, ol.renderer.webgl.vectorlayer2.shader.LineStringCollectionVertex.SOURCE); -}; -goog.inherits(ol.renderer.webgl.vectorlayer2.shader.LineStringCollectionVertex, ol.webgl.shader.Vertex); -goog.addSingletonGetter(ol.renderer.webgl.vectorlayer2.shader.LineStringCollectionVertex); - - -/** - * @const - * @type {string} - */ -ol.renderer.webgl.vectorlayer2.shader.LineStringCollectionVertex.DEBUG_SOURCE = 'attribute vec2 a_position;\nuniform mat4 u_modelViewMatrix;\n\nvoid main(void) {\n gl_Position = u_modelViewMatrix * vec4(a_position, 0., 1.);\n}\n\n\n'; - - -/** - * @const - * @type {string} - */ -ol.renderer.webgl.vectorlayer2.shader.LineStringCollectionVertex.OPTIMIZED_SOURCE = 'attribute vec2 a;uniform mat4 b;void main(void){gl_Position=b*vec4(a,0.,1.);}'; - - -/** - * @const - * @type {string} - */ -ol.renderer.webgl.vectorlayer2.shader.LineStringCollectionVertex.SOURCE = goog.DEBUG ? - ol.renderer.webgl.vectorlayer2.shader.LineStringCollectionVertex.DEBUG_SOURCE : - ol.renderer.webgl.vectorlayer2.shader.LineStringCollectionVertex.OPTIMIZED_SOURCE; - - - -/** - * @constructor - * @param {WebGLRenderingContext} gl GL. - * @param {WebGLProgram} program Program. - */ -ol.renderer.webgl.vectorlayer2.shader.LineStringCollection.Locations = function(gl, program) { - - /** - * @type {WebGLUniformLocation} - */ - this.u_color = gl.getUniformLocation( - program, goog.DEBUG ? 'u_color' : 'c'); - - /** - * @type {WebGLUniformLocation} - */ - this.u_modelViewMatrix = gl.getUniformLocation( - program, goog.DEBUG ? 'u_modelViewMatrix' : 'b'); - - /** - * @type {number} - */ - this.a_position = gl.getAttribLocation( - program, goog.DEBUG ? 'a_position' : 'a'); -}; diff --git a/src/ol/renderer/webgl/webglvectorlayer2pointcollection.glsl b/src/ol/renderer/webgl/webglvectorlayer2pointcollection.glsl deleted file mode 100644 index 07f09ef42e..0000000000 --- a/src/ol/renderer/webgl/webglvectorlayer2pointcollection.glsl +++ /dev/null @@ -1,21 +0,0 @@ -//! NAMESPACE=ol.renderer.webgl.vectorlayer2.shader.PointCollection -//! CLASS=ol.renderer.webgl.vectorlayer2.shader.PointCollection - - -//! VERTEX -attribute vec2 a_position; -uniform float u_pointSize; -uniform mat4 u_modelViewMatrix; - -void main(void) { - gl_Position = u_modelViewMatrix * vec4(a_position, 0., 1.); - gl_PointSize = u_pointSize; -} - - -//! FRAGMENT -uniform vec4 u_color; - -void main(void) { - gl_FragColor = u_color; -} diff --git a/src/ol/renderer/webgl/webglvectorlayer2pointcollectionshader.js b/src/ol/renderer/webgl/webglvectorlayer2pointcollectionshader.js deleted file mode 100644 index fb8a9f953f..0000000000 --- a/src/ol/renderer/webgl/webglvectorlayer2pointcollectionshader.js +++ /dev/null @@ -1,108 +0,0 @@ -// This file is automatically generated, do not edit -goog.provide('ol.renderer.webgl.vectorlayer2.shader.PointCollection'); - -goog.require('ol.webgl.shader'); - - - -/** - * @constructor - * @extends {ol.webgl.shader.Fragment} - */ -ol.renderer.webgl.vectorlayer2.shader.PointCollectionFragment = function() { - goog.base(this, ol.renderer.webgl.vectorlayer2.shader.PointCollectionFragment.SOURCE); -}; -goog.inherits(ol.renderer.webgl.vectorlayer2.shader.PointCollectionFragment, ol.webgl.shader.Fragment); -goog.addSingletonGetter(ol.renderer.webgl.vectorlayer2.shader.PointCollectionFragment); - - -/** - * @const - * @type {string} - */ -ol.renderer.webgl.vectorlayer2.shader.PointCollectionFragment.DEBUG_SOURCE = 'precision mediump float;\nuniform vec4 u_color;\n\nvoid main(void) {\n gl_FragColor = u_color;\n}\n'; - - -/** - * @const - * @type {string} - */ -ol.renderer.webgl.vectorlayer2.shader.PointCollectionFragment.OPTIMIZED_SOURCE = 'precision mediump float;uniform vec4 d;void main(void){gl_FragColor=d;}'; - - -/** - * @const - * @type {string} - */ -ol.renderer.webgl.vectorlayer2.shader.PointCollectionFragment.SOURCE = goog.DEBUG ? - ol.renderer.webgl.vectorlayer2.shader.PointCollectionFragment.DEBUG_SOURCE : - ol.renderer.webgl.vectorlayer2.shader.PointCollectionFragment.OPTIMIZED_SOURCE; - - - -/** - * @constructor - * @extends {ol.webgl.shader.Vertex} - */ -ol.renderer.webgl.vectorlayer2.shader.PointCollectionVertex = function() { - goog.base(this, ol.renderer.webgl.vectorlayer2.shader.PointCollectionVertex.SOURCE); -}; -goog.inherits(ol.renderer.webgl.vectorlayer2.shader.PointCollectionVertex, ol.webgl.shader.Vertex); -goog.addSingletonGetter(ol.renderer.webgl.vectorlayer2.shader.PointCollectionVertex); - - -/** - * @const - * @type {string} - */ -ol.renderer.webgl.vectorlayer2.shader.PointCollectionVertex.DEBUG_SOURCE = 'attribute vec2 a_position;\nuniform float u_pointSize;\nuniform mat4 u_modelViewMatrix;\n\nvoid main(void) {\n gl_Position = u_modelViewMatrix * vec4(a_position, 0., 1.);\n gl_PointSize = u_pointSize;\n}\n\n\n'; - - -/** - * @const - * @type {string} - */ -ol.renderer.webgl.vectorlayer2.shader.PointCollectionVertex.OPTIMIZED_SOURCE = 'attribute vec2 a;uniform float b;uniform mat4 c;void main(void){gl_Position=c*vec4(a,0.,1.);gl_PointSize=b;}'; - - -/** - * @const - * @type {string} - */ -ol.renderer.webgl.vectorlayer2.shader.PointCollectionVertex.SOURCE = goog.DEBUG ? - ol.renderer.webgl.vectorlayer2.shader.PointCollectionVertex.DEBUG_SOURCE : - ol.renderer.webgl.vectorlayer2.shader.PointCollectionVertex.OPTIMIZED_SOURCE; - - - -/** - * @constructor - * @param {WebGLRenderingContext} gl GL. - * @param {WebGLProgram} program Program. - */ -ol.renderer.webgl.vectorlayer2.shader.PointCollection.Locations = function(gl, program) { - - /** - * @type {WebGLUniformLocation} - */ - this.u_color = gl.getUniformLocation( - program, goog.DEBUG ? 'u_color' : 'd'); - - /** - * @type {WebGLUniformLocation} - */ - this.u_modelViewMatrix = gl.getUniformLocation( - program, goog.DEBUG ? 'u_modelViewMatrix' : 'c'); - - /** - * @type {WebGLUniformLocation} - */ - this.u_pointSize = gl.getUniformLocation( - program, goog.DEBUG ? 'u_pointSize' : 'b'); - - /** - * @type {number} - */ - this.a_position = gl.getAttribLocation( - program, goog.DEBUG ? 'a_position' : 'a'); -}; diff --git a/src/ol/renderer/webgl/webglvectorlayer2renderer.js b/src/ol/renderer/webgl/webglvectorlayer2renderer.js deleted file mode 100644 index 812f998ef5..0000000000 --- a/src/ol/renderer/webgl/webglvectorlayer2renderer.js +++ /dev/null @@ -1,219 +0,0 @@ -goog.provide('ol.renderer.webgl.VectorLayer2'); - -goog.require('goog.vec.Mat4'); -goog.require('goog.webgl'); -goog.require('ol.math'); -goog.require('ol.renderer.webgl.Layer'); -goog.require('ol.renderer.webgl.vectorlayer2.shader.LineStringCollection'); -goog.require('ol.renderer.webgl.vectorlayer2.shader.PointCollection'); - - - -/** - * @constructor - * @extends {ol.renderer.webgl.Layer} - * @param {ol.renderer.Map} mapRenderer Map renderer. - * @param {ol.layer.Vector2} vectorLayer2 Vector layer. - */ -ol.renderer.webgl.VectorLayer2 = function(mapRenderer, vectorLayer2) { - - goog.base(this, mapRenderer, vectorLayer2); - - goog.vec.Mat4.makeIdentity(this.projectionMatrix); - - /** - * @private - * @type {!goog.vec.Mat4.Number} - */ - this.modelViewMatrix_ = goog.vec.Mat4.createNumberIdentity(); - - /** - * @private - * @type - * {ol.renderer.webgl.vectorlayer2.shader.LineStringCollection.Locations} - */ - this.lineStringCollectionLocations_ = null; - - /** - * @private - * @type {ol.renderer.webgl.vectorlayer2.shader.PointCollection.Locations} - */ - this.pointCollectionLocations_ = null; - -}; -goog.inherits(ol.renderer.webgl.VectorLayer2, ol.renderer.webgl.Layer); - - -/** - * @return {ol.layer.Vector2} Vector layer. - */ -ol.renderer.webgl.VectorLayer2.prototype.getVectorLayer = function() { - return /** @type {ol.layer.Vector2} */ (this.getLayer()); -}; - - -/** - * @inheritDoc - */ -ol.renderer.webgl.VectorLayer2.prototype.handleWebGLContextLost = function() { - goog.base(this, 'handleWebGLContextLost'); - this.pointCollectionLocations_ = null; -}; - - -/** - * @inheritDoc - */ -ol.renderer.webgl.VectorLayer2.prototype.renderFrame = - function(frameState, layerState) { - - var mapRenderer = this.getWebGLMapRenderer(); - var gl = mapRenderer.getGL(); - - var view2DState = frameState.view2DState; - - var vectorLayer = this.getVectorLayer(); - var vectorSource = vectorLayer.getVectorSource(); - - var size = frameState.size; - var framebufferDimension = ol.math.roundUpToPowerOfTwo( - Math.max(size[0], size[1])); - - this.bindFramebuffer(frameState, framebufferDimension); - gl.viewport(0, 0, framebufferDimension, framebufferDimension); - - gl.clearColor(0, 0, 0, 0); - gl.clear(goog.webgl.COLOR_BUFFER_BIT); - gl.enable(goog.webgl.BLEND); - - goog.vec.Mat4.makeIdentity(this.modelViewMatrix_); - if (view2DState.rotation !== 0) { - goog.vec.Mat4.rotateZ(this.modelViewMatrix_, -view2DState.rotation); - } - goog.vec.Mat4.scale(this.modelViewMatrix_, - 2 / (framebufferDimension * view2DState.resolution), - 2 / (framebufferDimension * view2DState.resolution), - 1); - goog.vec.Mat4.translate(this.modelViewMatrix_, - -view2DState.center[0], - -view2DState.center[1], - 0); - - var pointCollections = vectorSource.getPointCollections(); - if (pointCollections.length > 0) { - this.renderPointCollections(pointCollections); - } - var lineStringCollections = vectorSource.getLineStringCollections(); - if (lineStringCollections.length > 0) { - this.renderLineStringCollections(lineStringCollections); - } - - goog.vec.Mat4.makeIdentity(this.texCoordMatrix); - goog.vec.Mat4.translate(this.texCoordMatrix, - 0.5, - 0.5, - 0); - goog.vec.Mat4.scale(this.texCoordMatrix, - size[0] / framebufferDimension, - size[1] / framebufferDimension, - 1); - goog.vec.Mat4.translate(this.texCoordMatrix, - -0.5, - -0.5, - 0); - -}; - - -/** - * @param {Array.} lineStringCollections Line - * string collections. - */ -ol.renderer.webgl.VectorLayer2.prototype.renderLineStringCollections = - function(lineStringCollections) { - - var mapRenderer = this.getWebGLMapRenderer(); - var gl = mapRenderer.getGL(); - - var fragmentShader = ol.renderer.webgl.vectorlayer2.shader. - LineStringCollectionFragment.getInstance(); - var vertexShader = ol.renderer.webgl.vectorlayer2.shader. - LineStringCollectionVertex.getInstance(); - var program = mapRenderer.getProgram(fragmentShader, vertexShader); - gl.useProgram(program); - if (goog.isNull(this.lineStringCollectionLocations_)) { - this.lineStringCollectionLocations_ = - new ol.renderer.webgl.vectorlayer2.shader.LineStringCollection. - Locations(gl, program); - } - - gl.uniformMatrix4fv(this.lineStringCollectionLocations_.u_modelViewMatrix, - false, this.modelViewMatrix_); - - var buf, dim, i, indexBuffer, indices, lineStringCollection; - for (i = 0; i < lineStringCollections.length; ++i) { - lineStringCollection = lineStringCollections[i]; - buf = lineStringCollection.buf; - dim = lineStringCollection.dim; - mapRenderer.bindBuffer(goog.webgl.ARRAY_BUFFER, buf); - // FIXME re-use index buffer - // FIXME use mapRenderer.bindBuffer - indices = lineStringCollection.getIndices(); - indexBuffer = gl.createBuffer(); - gl.bindBuffer(goog.webgl.ELEMENT_ARRAY_BUFFER, indexBuffer); - gl.bufferData( - goog.webgl.ELEMENT_ARRAY_BUFFER, indices, goog.webgl.DYNAMIC_DRAW); - gl.enableVertexAttribArray(this.lineStringCollectionLocations_.a_position); - gl.vertexAttribPointer(this.lineStringCollectionLocations_.a_position, 2, - goog.webgl.FLOAT, false, 4 * dim, 0); - gl.uniform4fv(this.lineStringCollectionLocations_.u_color, [1, 1, 0, 0.75]); - gl.drawElements( - goog.webgl.LINES, indices.length, goog.webgl.UNSIGNED_SHORT, 0); - gl.bindBuffer(goog.webgl.ELEMENT_ARRAY_BUFFER, null); - gl.deleteBuffer(indexBuffer); - } - -}; - - -/** - * @param {Array.} pointCollections Point collections. - */ -ol.renderer.webgl.VectorLayer2.prototype.renderPointCollections = - function(pointCollections) { - - var mapRenderer = this.getWebGLMapRenderer(); - var gl = mapRenderer.getGL(); - - var fragmentShader = ol.renderer.webgl.vectorlayer2.shader. - PointCollectionFragment.getInstance(); - var vertexShader = ol.renderer.webgl.vectorlayer2.shader. - PointCollectionVertex.getInstance(); - var program = mapRenderer.getProgram(fragmentShader, vertexShader); - gl.useProgram(program); - if (goog.isNull(this.pointCollectionLocations_)) { - this.pointCollectionLocations_ = - new ol.renderer.webgl.vectorlayer2.shader.PointCollection.Locations( - gl, program); - } - - gl.uniformMatrix4fv(this.pointCollectionLocations_.u_modelViewMatrix, false, - this.modelViewMatrix_); - - var buf, dim, i, pointCollection; - for (i = 0; i < pointCollections.length; ++i) { - pointCollection = pointCollections[i]; - buf = pointCollection.buf; - dim = pointCollection.dim; - mapRenderer.bindBuffer(goog.webgl.ARRAY_BUFFER, buf); - gl.enableVertexAttribArray(this.pointCollectionLocations_.a_position); - gl.vertexAttribPointer(this.pointCollectionLocations_.a_position, 2, - goog.webgl.FLOAT, false, 4 * dim, 0); - gl.uniform4fv(this.pointCollectionLocations_.u_color, [1, 0, 0, 0.75]); - gl.uniform1f(this.pointCollectionLocations_.u_pointSize, 3); - buf.forEachRange(function(start, stop) { - gl.drawArrays(goog.webgl.POINTS, start / dim, (stop - start) / dim); - }); - } - -};