Move shader support code into ol.webgl
This commit is contained in:
@@ -6,7 +6,7 @@ before_install:
|
|||||||
before_script:
|
before_script:
|
||||||
- "./build.py plovr"
|
- "./build.py plovr"
|
||||||
- "./build.py serve-integration-test &"
|
- "./build.py serve-integration-test &"
|
||||||
- "rm src/ol/renderer/webgl/webgl*shader.js"
|
- "rm src/ol/renderer/webgl/*shader.js"
|
||||||
- "sleep 3"
|
- "sleep 3"
|
||||||
|
|
||||||
script: "./build.py JSDOC=jsdoc/jsdoc integration-test"
|
script: "./build.py JSDOC=jsdoc/jsdoc integration-test"
|
||||||
|
|||||||
4
build.py
4
build.py
@@ -188,11 +188,11 @@ def build_src_external_src_types_js(t):
|
|||||||
for glsl_src in GLSL_SRC:
|
for glsl_src in GLSL_SRC:
|
||||||
def shader_src_helper(glsl_src):
|
def shader_src_helper(glsl_src):
|
||||||
@target(glsl_src.replace('.glsl', 'shader.js'), 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):
|
def shader_src(t):
|
||||||
t.run('%(NODE)s', TEMPLATE_GLSL_COMPILER_JS,
|
t.run('%(NODE)s', TEMPLATE_GLSL_COMPILER_JS,
|
||||||
'--input', glsl_src,
|
'--input', glsl_src,
|
||||||
'--template', 'src/ol/renderer/webgl/shader.mustache',
|
'--template', 'src/ol/webgl/shader.mustache',
|
||||||
'--output', t.name)
|
'--output', t.name)
|
||||||
shader_src_helper(glsl_src)
|
shader_src_helper(glsl_src)
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
|
||||||
};
|
|
||||||
@@ -17,15 +17,15 @@ goog.require('ol.Tile');
|
|||||||
goog.require('ol.layer.ImageLayer');
|
goog.require('ol.layer.ImageLayer');
|
||||||
goog.require('ol.layer.TileLayer');
|
goog.require('ol.layer.TileLayer');
|
||||||
goog.require('ol.renderer.Map');
|
goog.require('ol.renderer.Map');
|
||||||
goog.require('ol.renderer.webgl.FragmentShader');
|
|
||||||
goog.require('ol.renderer.webgl.ImageLayer');
|
goog.require('ol.renderer.webgl.ImageLayer');
|
||||||
goog.require('ol.renderer.webgl.TileLayer');
|
goog.require('ol.renderer.webgl.TileLayer');
|
||||||
goog.require('ol.renderer.webgl.VertexShader');
|
|
||||||
goog.require('ol.renderer.webgl.map.shader');
|
goog.require('ol.renderer.webgl.map.shader');
|
||||||
goog.require('ol.structs.Buffer');
|
goog.require('ol.structs.Buffer');
|
||||||
goog.require('ol.structs.IntegerSet');
|
goog.require('ol.structs.IntegerSet');
|
||||||
goog.require('ol.structs.LRUCache');
|
goog.require('ol.structs.LRUCache');
|
||||||
goog.require('ol.webgl');
|
goog.require('ol.webgl');
|
||||||
|
goog.require('ol.webgl.FragmentShader');
|
||||||
|
goog.require('ol.webgl.VertexShader');
|
||||||
goog.require('ol.webgl.WebGLContextEventType');
|
goog.require('ol.webgl.WebGLContextEventType');
|
||||||
|
|
||||||
|
|
||||||
@@ -163,13 +163,13 @@ ol.renderer.webgl.Map = function(container, map) {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @private
|
* @private
|
||||||
* @type {ol.renderer.webgl.FragmentShader}
|
* @type {ol.webgl.FragmentShader}
|
||||||
*/
|
*/
|
||||||
this.fragmentShader_ = ol.renderer.webgl.map.shader.Fragment.getInstance();
|
this.fragmentShader_ = ol.renderer.webgl.map.shader.Fragment.getInstance();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @private
|
* @private
|
||||||
* @type {ol.renderer.webgl.VertexShader}
|
* @type {ol.webgl.VertexShader}
|
||||||
*/
|
*/
|
||||||
this.vertexShader_ = ol.renderer.webgl.map.shader.Vertex.getInstance();
|
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
|
* @param {ol.webgl.FragmentShader} fragmentShaderObject Fragment shader.
|
||||||
* Fragment shader.
|
* @param {ol.webgl.VertexShader} vertexShaderObject Vertex shader.
|
||||||
* @param {ol.renderer.webgl.VertexShader} vertexShaderObject Vertex shader.
|
|
||||||
* @return {WebGLProgram} Program.
|
* @return {WebGLProgram} Program.
|
||||||
*/
|
*/
|
||||||
ol.renderer.webgl.Map.prototype.getProgram = function(
|
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.
|
* @return {WebGLShader} Shader.
|
||||||
*/
|
*/
|
||||||
ol.renderer.webgl.Map.prototype.getShader = function(shaderObject) {
|
ol.renderer.webgl.Map.prototype.getShader = function(shaderObject) {
|
||||||
|
|||||||
@@ -1,14 +1,14 @@
|
|||||||
goog.provide('ol.renderer.webgl.map.shader');
|
goog.provide('ol.renderer.webgl.map.shader');
|
||||||
goog.require('ol.renderer.webgl.FragmentShader');
|
goog.require('ol.webgl.FragmentShader');
|
||||||
goog.require('ol.renderer.webgl.VertexShader');
|
goog.require('ol.webgl.VertexShader');
|
||||||
/**
|
/**
|
||||||
* @constructor
|
* @constructor
|
||||||
* @extends {ol.renderer.webgl.FragmentShader}
|
* @extends {ol.webgl.FragmentShader}
|
||||||
*/
|
*/
|
||||||
ol.renderer.webgl.map.shader.Fragment = function() {
|
ol.renderer.webgl.map.shader.Fragment = function() {
|
||||||
goog.base(this, ol.renderer.webgl.map.shader.Fragment.SOURCE);
|
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);
|
goog.addSingletonGetter(ol.renderer.webgl.map.shader.Fragment);
|
||||||
/**
|
/**
|
||||||
* @const
|
* @const
|
||||||
@@ -29,12 +29,12 @@ ol.renderer.webgl.map.shader.Fragment.SOURCE = goog.DEBUG ?
|
|||||||
ol.renderer.webgl.map.shader.Fragment.OPTIMIZED_SOURCE;
|
ol.renderer.webgl.map.shader.Fragment.OPTIMIZED_SOURCE;
|
||||||
/**
|
/**
|
||||||
* @constructor
|
* @constructor
|
||||||
* @extends {ol.renderer.webgl.VertexShader}
|
* @extends {ol.webgl.VertexShader}
|
||||||
*/
|
*/
|
||||||
ol.renderer.webgl.map.shader.Vertex = function() {
|
ol.renderer.webgl.map.shader.Vertex = function() {
|
||||||
goog.base(this, ol.renderer.webgl.map.shader.Vertex.SOURCE);
|
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);
|
goog.addSingletonGetter(ol.renderer.webgl.map.shader.Vertex);
|
||||||
/**
|
/**
|
||||||
* @const
|
* @const
|
||||||
|
|||||||
@@ -35,14 +35,14 @@ ol.renderer.webgl.TileLayer = function(mapRenderer, tileLayer) {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @private
|
* @private
|
||||||
* @type {ol.renderer.webgl.FragmentShader}
|
* @type {ol.webgl.FragmentShader}
|
||||||
*/
|
*/
|
||||||
this.fragmentShader_ =
|
this.fragmentShader_ =
|
||||||
ol.renderer.webgl.tilelayer.shader.Fragment.getInstance();
|
ol.renderer.webgl.tilelayer.shader.Fragment.getInstance();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @private
|
* @private
|
||||||
* @type {ol.renderer.webgl.VertexShader}
|
* @type {ol.webgl.VertexShader}
|
||||||
*/
|
*/
|
||||||
this.vertexShader_ = ol.renderer.webgl.tilelayer.shader.Vertex.getInstance();
|
this.vertexShader_ = ol.renderer.webgl.tilelayer.shader.Vertex.getInstance();
|
||||||
|
|
||||||
|
|||||||
@@ -1,14 +1,14 @@
|
|||||||
goog.provide('ol.renderer.webgl.tilelayer.shader');
|
goog.provide('ol.renderer.webgl.tilelayer.shader');
|
||||||
goog.require('ol.renderer.webgl.FragmentShader');
|
goog.require('ol.webgl.FragmentShader');
|
||||||
goog.require('ol.renderer.webgl.VertexShader');
|
goog.require('ol.webgl.VertexShader');
|
||||||
/**
|
/**
|
||||||
* @constructor
|
* @constructor
|
||||||
* @extends {ol.renderer.webgl.FragmentShader}
|
* @extends {ol.webgl.FragmentShader}
|
||||||
*/
|
*/
|
||||||
ol.renderer.webgl.tilelayer.shader.Fragment = function() {
|
ol.renderer.webgl.tilelayer.shader.Fragment = function() {
|
||||||
goog.base(this, ol.renderer.webgl.tilelayer.shader.Fragment.SOURCE);
|
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);
|
goog.addSingletonGetter(ol.renderer.webgl.tilelayer.shader.Fragment);
|
||||||
/**
|
/**
|
||||||
* @const
|
* @const
|
||||||
@@ -29,12 +29,12 @@ ol.renderer.webgl.tilelayer.shader.Fragment.SOURCE = goog.DEBUG ?
|
|||||||
ol.renderer.webgl.tilelayer.shader.Fragment.OPTIMIZED_SOURCE;
|
ol.renderer.webgl.tilelayer.shader.Fragment.OPTIMIZED_SOURCE;
|
||||||
/**
|
/**
|
||||||
* @constructor
|
* @constructor
|
||||||
* @extends {ol.renderer.webgl.VertexShader}
|
* @extends {ol.webgl.VertexShader}
|
||||||
*/
|
*/
|
||||||
ol.renderer.webgl.tilelayer.shader.Vertex = function() {
|
ol.renderer.webgl.tilelayer.shader.Vertex = function() {
|
||||||
goog.base(this, ol.renderer.webgl.tilelayer.shader.Vertex.SOURCE);
|
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);
|
goog.addSingletonGetter(ol.renderer.webgl.tilelayer.shader.Vertex);
|
||||||
/**
|
/**
|
||||||
* @const
|
* @const
|
||||||
|
|||||||
81
src/ol/webgl/shader.js
Normal file
81
src/ol/webgl/shader.js
Normal file
@@ -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;
|
||||||
|
};
|
||||||
@@ -1,18 +1,18 @@
|
|||||||
goog.provide('{{namespace}}.shader');
|
goog.provide('{{namespace}}.shader');
|
||||||
|
|
||||||
goog.require('ol.renderer.webgl.FragmentShader');
|
goog.require('ol.webgl.FragmentShader');
|
||||||
goog.require('ol.renderer.webgl.VertexShader');
|
goog.require('ol.webgl.VertexShader');
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @constructor
|
* @constructor
|
||||||
* @extends {ol.renderer.webgl.FragmentShader}
|
* @extends {ol.webgl.FragmentShader}
|
||||||
*/
|
*/
|
||||||
{{namespace}}.shader.Fragment = function() {
|
{{namespace}}.shader.Fragment = function() {
|
||||||
goog.base(this, {{namespace}}.shader.Fragment.SOURCE);
|
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);
|
goog.addSingletonGetter({{namespace}}.shader.Fragment);
|
||||||
|
|
||||||
|
|
||||||
@@ -42,12 +42,12 @@ goog.addSingletonGetter({{namespace}}.shader.Fragment);
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @constructor
|
* @constructor
|
||||||
* @extends {ol.renderer.webgl.VertexShader}
|
* @extends {ol.webgl.VertexShader}
|
||||||
*/
|
*/
|
||||||
{{namespace}}.shader.Vertex = function() {
|
{{namespace}}.shader.Vertex = function() {
|
||||||
goog.base(this, {{namespace}}.shader.Vertex.SOURCE);
|
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);
|
goog.addSingletonGetter({{namespace}}.shader.Vertex);
|
||||||
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user