From 731fcd3d176539f7ff0a3fed59838cc861da3efc Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sat, 23 Mar 2013 18:29:26 +0100 Subject: [PATCH] Move shader support code into ol.webgl --- .travis.yml | 2 +- build.py | 4 +- src/ol/renderer/webgl/shader.js | 81 ------------------- src/ol/renderer/webgl/webglmaprenderer.js | 15 ++-- src/ol/renderer/webgl/webglmapshader.js | 12 +-- .../renderer/webgl/webgltilelayerrenderer.js | 4 +- src/ol/renderer/webgl/webgltilelayershader.js | 12 +-- src/ol/webgl/shader.js | 81 +++++++++++++++++++ src/ol/{renderer => }/webgl/shader.mustache | 12 +-- 9 files changed, 111 insertions(+), 112 deletions(-) delete mode 100644 src/ol/renderer/webgl/shader.js create mode 100644 src/ol/webgl/shader.js rename src/ol/{renderer => }/webgl/shader.mustache (83%) diff --git a/.travis.yml b/.travis.yml index 29e2a17663..12b0ddc923 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,7 +6,7 @@ before_install: before_script: - "./build.py plovr" - "./build.py serve-integration-test &" - - "rm src/ol/renderer/webgl/webgl*shader.js" + - "rm src/ol/renderer/webgl/*shader.js" - "sleep 3" script: "./build.py JSDOC=jsdoc/jsdoc integration-test" diff --git a/build.py b/build.py index 9e03cf6466..bed89464e3 100755 --- a/build.py +++ b/build.py @@ -188,11 +188,11 @@ def build_src_external_src_types_js(t): for glsl_src in GLSL_SRC: def shader_src_helper(glsl_src): @target(glsl_src.replace('.glsl', 'shader.js'), glsl_src, - 'src/ol/renderer/webgl/shader.mustache') + 'src/ol/webgl/shader.mustache') def shader_src(t): t.run('%(NODE)s', TEMPLATE_GLSL_COMPILER_JS, '--input', glsl_src, - '--template', 'src/ol/renderer/webgl/shader.mustache', + '--template', 'src/ol/webgl/shader.mustache', '--output', t.name) shader_src_helper(glsl_src) diff --git a/src/ol/renderer/webgl/shader.js b/src/ol/renderer/webgl/shader.js deleted file mode 100644 index e425155641..0000000000 --- a/src/ol/renderer/webgl/shader.js +++ /dev/null @@ -1,81 +0,0 @@ -goog.provide('ol.renderer.webgl.FragmentShader'); -goog.provide('ol.renderer.webgl.VertexShader'); - -goog.require('goog.functions'); -goog.require('goog.webgl'); - - - -/** - * @constructor - * @param {string} source Source. - */ -ol.renderer.webgl.Shader = function(source) { - - /** - * @private - * @type {string} - */ - this.source_ = source; - -}; - - -/** - * @return {number} Type. - */ -ol.renderer.webgl.Shader.prototype.getType = goog.abstractMethod; - - -/** - * @return {string} Source. - */ -ol.renderer.webgl.Shader.prototype.getSource = function() { - return this.source_; -}; - - -/** - * @return {boolean} Is animated? - */ -ol.renderer.webgl.Shader.prototype.isAnimated = goog.functions.FALSE; - - - -/** - * @constructor - * @extends {ol.renderer.webgl.Shader} - * @param {string} source Source. - */ -ol.renderer.webgl.FragmentShader = function(source) { - goog.base(this, source); -}; -goog.inherits(ol.renderer.webgl.FragmentShader, ol.renderer.webgl.Shader); - - -/** - * @inheritDoc - */ -ol.renderer.webgl.FragmentShader.prototype.getType = function() { - return goog.webgl.FRAGMENT_SHADER; -}; - - - -/** - * @constructor - * @extends {ol.renderer.webgl.Shader} - * @param {string} source Source. - */ -ol.renderer.webgl.VertexShader = function(source) { - goog.base(this, source); -}; -goog.inherits(ol.renderer.webgl.VertexShader, ol.renderer.webgl.Shader); - - -/** - * @inheritDoc - */ -ol.renderer.webgl.VertexShader.prototype.getType = function() { - return goog.webgl.VERTEX_SHADER; -}; diff --git a/src/ol/renderer/webgl/webglmaprenderer.js b/src/ol/renderer/webgl/webglmaprenderer.js index 3d56eca6e0..2507bab7a6 100644 --- a/src/ol/renderer/webgl/webglmaprenderer.js +++ b/src/ol/renderer/webgl/webglmaprenderer.js @@ -17,15 +17,15 @@ goog.require('ol.Tile'); goog.require('ol.layer.ImageLayer'); goog.require('ol.layer.TileLayer'); goog.require('ol.renderer.Map'); -goog.require('ol.renderer.webgl.FragmentShader'); goog.require('ol.renderer.webgl.ImageLayer'); goog.require('ol.renderer.webgl.TileLayer'); -goog.require('ol.renderer.webgl.VertexShader'); goog.require('ol.renderer.webgl.map.shader'); goog.require('ol.structs.Buffer'); goog.require('ol.structs.IntegerSet'); goog.require('ol.structs.LRUCache'); goog.require('ol.webgl'); +goog.require('ol.webgl.FragmentShader'); +goog.require('ol.webgl.VertexShader'); goog.require('ol.webgl.WebGLContextEventType'); @@ -163,13 +163,13 @@ ol.renderer.webgl.Map = function(container, map) { /** * @private - * @type {ol.renderer.webgl.FragmentShader} + * @type {ol.webgl.FragmentShader} */ this.fragmentShader_ = ol.renderer.webgl.map.shader.Fragment.getInstance(); /** * @private - * @type {ol.renderer.webgl.VertexShader} + * @type {ol.webgl.VertexShader} */ this.vertexShader_ = ol.renderer.webgl.map.shader.Vertex.getInstance(); @@ -368,9 +368,8 @@ ol.renderer.webgl.Map.prototype.getGL = function() { /** - * @param {ol.renderer.webgl.FragmentShader} fragmentShaderObject - * Fragment shader. - * @param {ol.renderer.webgl.VertexShader} vertexShaderObject Vertex shader. + * @param {ol.webgl.FragmentShader} fragmentShaderObject Fragment shader. + * @param {ol.webgl.VertexShader} vertexShaderObject Vertex shader. * @return {WebGLProgram} Program. */ ol.renderer.webgl.Map.prototype.getProgram = function( @@ -400,7 +399,7 @@ ol.renderer.webgl.Map.prototype.getProgram = function( /** - * @param {ol.renderer.webgl.Shader} shaderObject Shader object. + * @param {ol.webgl.Shader} shaderObject Shader object. * @return {WebGLShader} Shader. */ ol.renderer.webgl.Map.prototype.getShader = function(shaderObject) { diff --git a/src/ol/renderer/webgl/webglmapshader.js b/src/ol/renderer/webgl/webglmapshader.js index 29afc21c04..ce22cb06b2 100644 --- a/src/ol/renderer/webgl/webglmapshader.js +++ b/src/ol/renderer/webgl/webglmapshader.js @@ -1,14 +1,14 @@ goog.provide('ol.renderer.webgl.map.shader'); -goog.require('ol.renderer.webgl.FragmentShader'); -goog.require('ol.renderer.webgl.VertexShader'); +goog.require('ol.webgl.FragmentShader'); +goog.require('ol.webgl.VertexShader'); /** * @constructor - * @extends {ol.renderer.webgl.FragmentShader} + * @extends {ol.webgl.FragmentShader} */ ol.renderer.webgl.map.shader.Fragment = function() { goog.base(this, ol.renderer.webgl.map.shader.Fragment.SOURCE); }; -goog.inherits(ol.renderer.webgl.map.shader.Fragment, ol.renderer.webgl.FragmentShader); +goog.inherits(ol.renderer.webgl.map.shader.Fragment, ol.webgl.FragmentShader); goog.addSingletonGetter(ol.renderer.webgl.map.shader.Fragment); /** * @const @@ -29,12 +29,12 @@ ol.renderer.webgl.map.shader.Fragment.SOURCE = goog.DEBUG ? ol.renderer.webgl.map.shader.Fragment.OPTIMIZED_SOURCE; /** * @constructor - * @extends {ol.renderer.webgl.VertexShader} + * @extends {ol.webgl.VertexShader} */ ol.renderer.webgl.map.shader.Vertex = function() { goog.base(this, ol.renderer.webgl.map.shader.Vertex.SOURCE); }; -goog.inherits(ol.renderer.webgl.map.shader.Vertex, ol.renderer.webgl.VertexShader); +goog.inherits(ol.renderer.webgl.map.shader.Vertex, ol.webgl.VertexShader); goog.addSingletonGetter(ol.renderer.webgl.map.shader.Vertex); /** * @const diff --git a/src/ol/renderer/webgl/webgltilelayerrenderer.js b/src/ol/renderer/webgl/webgltilelayerrenderer.js index 8bb2cb202a..cfae0295ec 100644 --- a/src/ol/renderer/webgl/webgltilelayerrenderer.js +++ b/src/ol/renderer/webgl/webgltilelayerrenderer.js @@ -35,14 +35,14 @@ ol.renderer.webgl.TileLayer = function(mapRenderer, tileLayer) { /** * @private - * @type {ol.renderer.webgl.FragmentShader} + * @type {ol.webgl.FragmentShader} */ this.fragmentShader_ = ol.renderer.webgl.tilelayer.shader.Fragment.getInstance(); /** * @private - * @type {ol.renderer.webgl.VertexShader} + * @type {ol.webgl.VertexShader} */ this.vertexShader_ = ol.renderer.webgl.tilelayer.shader.Vertex.getInstance(); diff --git a/src/ol/renderer/webgl/webgltilelayershader.js b/src/ol/renderer/webgl/webgltilelayershader.js index 18e3cd507a..6e609ac3b0 100644 --- a/src/ol/renderer/webgl/webgltilelayershader.js +++ b/src/ol/renderer/webgl/webgltilelayershader.js @@ -1,14 +1,14 @@ goog.provide('ol.renderer.webgl.tilelayer.shader'); -goog.require('ol.renderer.webgl.FragmentShader'); -goog.require('ol.renderer.webgl.VertexShader'); +goog.require('ol.webgl.FragmentShader'); +goog.require('ol.webgl.VertexShader'); /** * @constructor - * @extends {ol.renderer.webgl.FragmentShader} + * @extends {ol.webgl.FragmentShader} */ ol.renderer.webgl.tilelayer.shader.Fragment = function() { goog.base(this, ol.renderer.webgl.tilelayer.shader.Fragment.SOURCE); }; -goog.inherits(ol.renderer.webgl.tilelayer.shader.Fragment, ol.renderer.webgl.FragmentShader); +goog.inherits(ol.renderer.webgl.tilelayer.shader.Fragment, ol.webgl.FragmentShader); goog.addSingletonGetter(ol.renderer.webgl.tilelayer.shader.Fragment); /** * @const @@ -29,12 +29,12 @@ ol.renderer.webgl.tilelayer.shader.Fragment.SOURCE = goog.DEBUG ? ol.renderer.webgl.tilelayer.shader.Fragment.OPTIMIZED_SOURCE; /** * @constructor - * @extends {ol.renderer.webgl.VertexShader} + * @extends {ol.webgl.VertexShader} */ ol.renderer.webgl.tilelayer.shader.Vertex = function() { goog.base(this, ol.renderer.webgl.tilelayer.shader.Vertex.SOURCE); }; -goog.inherits(ol.renderer.webgl.tilelayer.shader.Vertex, ol.renderer.webgl.VertexShader); +goog.inherits(ol.renderer.webgl.tilelayer.shader.Vertex, ol.webgl.VertexShader); goog.addSingletonGetter(ol.renderer.webgl.tilelayer.shader.Vertex); /** * @const diff --git a/src/ol/webgl/shader.js b/src/ol/webgl/shader.js new file mode 100644 index 0000000000..8550ccf7f2 --- /dev/null +++ b/src/ol/webgl/shader.js @@ -0,0 +1,81 @@ +goog.provide('ol.webgl.FragmentShader'); +goog.provide('ol.webgl.VertexShader'); + +goog.require('goog.functions'); +goog.require('goog.webgl'); + + + +/** + * @constructor + * @param {string} source Source. + */ +ol.webgl.Shader = function(source) { + + /** + * @private + * @type {string} + */ + this.source_ = source; + +}; + + +/** + * @return {number} Type. + */ +ol.webgl.Shader.prototype.getType = goog.abstractMethod; + + +/** + * @return {string} Source. + */ +ol.webgl.Shader.prototype.getSource = function() { + return this.source_; +}; + + +/** + * @return {boolean} Is animated? + */ +ol.webgl.Shader.prototype.isAnimated = goog.functions.FALSE; + + + +/** + * @constructor + * @extends {ol.webgl.Shader} + * @param {string} source Source. + */ +ol.webgl.FragmentShader = function(source) { + goog.base(this, source); +}; +goog.inherits(ol.webgl.FragmentShader, ol.webgl.Shader); + + +/** + * @inheritDoc + */ +ol.webgl.FragmentShader.prototype.getType = function() { + return goog.webgl.FRAGMENT_SHADER; +}; + + + +/** + * @constructor + * @extends {ol.webgl.Shader} + * @param {string} source Source. + */ +ol.webgl.VertexShader = function(source) { + goog.base(this, source); +}; +goog.inherits(ol.webgl.VertexShader, ol.webgl.Shader); + + +/** + * @inheritDoc + */ +ol.webgl.VertexShader.prototype.getType = function() { + return goog.webgl.VERTEX_SHADER; +}; diff --git a/src/ol/renderer/webgl/shader.mustache b/src/ol/webgl/shader.mustache similarity index 83% rename from src/ol/renderer/webgl/shader.mustache rename to src/ol/webgl/shader.mustache index 296822fb6c..5178ea8f8c 100644 --- a/src/ol/renderer/webgl/shader.mustache +++ b/src/ol/webgl/shader.mustache @@ -1,18 +1,18 @@ goog.provide('{{namespace}}.shader'); -goog.require('ol.renderer.webgl.FragmentShader'); -goog.require('ol.renderer.webgl.VertexShader'); +goog.require('ol.webgl.FragmentShader'); +goog.require('ol.webgl.VertexShader'); /** * @constructor - * @extends {ol.renderer.webgl.FragmentShader} + * @extends {ol.webgl.FragmentShader} */ {{namespace}}.shader.Fragment = function() { goog.base(this, {{namespace}}.shader.Fragment.SOURCE); }; -goog.inherits({{namespace}}.shader.Fragment, ol.renderer.webgl.FragmentShader); +goog.inherits({{namespace}}.shader.Fragment, ol.webgl.FragmentShader); goog.addSingletonGetter({{namespace}}.shader.Fragment); @@ -42,12 +42,12 @@ goog.addSingletonGetter({{namespace}}.shader.Fragment); /** * @constructor - * @extends {ol.renderer.webgl.VertexShader} + * @extends {ol.webgl.VertexShader} */ {{namespace}}.shader.Vertex = function() { goog.base(this, {{namespace}}.shader.Vertex.SOURCE); }; -goog.inherits({{namespace}}.shader.Vertex, ol.renderer.webgl.VertexShader); +goog.inherits({{namespace}}.shader.Vertex, ol.webgl.VertexShader); goog.addSingletonGetter({{namespace}}.shader.Vertex);