Merge pull request #1079 from twpayne/no-glsl-unit

Remove glsl-unit
This commit is contained in:
Tom Payne
2013-10-02 03:23:38 -07:00
9 changed files with 344 additions and 91 deletions

View File

@@ -1,8 +1,7 @@
before_install:
- "sudo pip install http://closure-linter.googlecode.com/files/closure_linter-latest.tar.gz"
- "sudo pip install regex"
- "sudo pip install -r requirements.txt"
- "git clone --depth=50 https://github.com/jsdoc3/jsdoc build/jsdoc"
- "git clone https://code.google.com/p/glsl-unit/ build/glsl-unit"
before_script:
- "./build.py plovr"

121
bin/pyglslunit.py Normal file
View File

@@ -0,0 +1,121 @@
#!/usr/bin/python
from optparse import OptionParser
import re
import sys
import pystache
ESCAPE_SEQUENCE = {
'\\': '\\\\',
'\n': '\\n',
'\t': '\\t'
}
def js_escape(s):
return ''.join(ESCAPE_SEQUENCE.get(c, c) for c in s)
def glsl_compress(s, shortNames):
# strip leading whitespace
s = re.sub(r'\A\s+', '', s)
# strip trailing whitespace
s = re.sub(r'\s+\Z', '', s)
# strip multi-line comments
s = re.sub(r'/\*.*?\*/', '', s)
# strip single line comments
s = re.sub(r'//.*?\n', '', s)
# replace multiple whitespace with a single space
s = re.sub(r'\s+', ' ', s)
# remove whitespace between non-word tokens
s = re.sub(r'(\S)\s+([^\w])', r'\1\2', s)
s = re.sub(r'([^\w])\s+(\S)', r'\1\2', s)
# replace original names with short names
for originalName, shortName in shortNames.items():
s = s.replace(originalName, shortName)
return s
def main(argv):
option_parser = OptionParser()
option_parser.add_option('--input')
option_parser.add_option('--output')
option_parser.add_option('--template')
options, args = option_parser.parse_args(argv[1:])
context = {}
nextShortName = ord('a')
shortNames = {}
common, vertex, fragment = [], [], []
attributes, uniforms, varyings = {}, {}, {}
block = None
for line in open(options.input):
if line.startswith('//!'):
m = re.match(r'//!\s+NAMESPACE=(\S+)\s*\Z', line)
if m:
context['namespace'] = m.group(1)
continue
m = re.match(r'//!\s+CLASS=(\S+)\s*\Z', line)
if m:
context['className'] = m.group(1)
continue
m = re.match(r'//!\s+COMMON\s*\Z', line)
if m:
block = common
continue
m = re.match(r'//!\s+VERTEX\s*\Z', line)
if m:
block = vertex
continue
m = re.match(r'//!\s+FRAGMENT\s*\Z', line)
if m:
block = fragment
continue
else:
if block is None:
assert line.rstrip() == ''
else:
block.append(line)
m = re.match(r'attribute\s+\S+\s+(\S+);\s*\Z', line)
if m:
attribute = m.group(1)
if attribute not in attributes:
shortName = chr(nextShortName)
nextShortName += 1
attributes[attribute] = {'originalName': attribute, 'shortName': shortName}
shortNames[attribute] = shortName
m = re.match(r'uniform\s+\S+\s+(\S+);\s*\Z', line)
if m:
uniform = m.group(1)
if uniform not in uniforms:
shortName = chr(nextShortName)
nextShortName += 1
uniforms[uniform] = {'originalName': uniform, 'shortName': shortName}
shortNames[uniform] = shortName
m = re.match(r'varying\s+\S+\s+(\S+);\s*\Z', line)
if m:
varying = m.group(1)
if varying not in varyings:
shortName = chr(nextShortName)
nextShortName += 1
shortNames[varying] = shortName
context['getOriginalFragmentSource'] = js_escape(''.join(common + fragment))
context['getOriginalVertexSource'] = js_escape(''.join(common + vertex))
context['getFragmentSource'] = glsl_compress(''.join(common + fragment), shortNames)
context['getVertexSource'] = glsl_compress(''.join(common + vertex), shortNames)
context['getAttributes'] = [attributes[a] for a in sorted(attributes.keys())]
context['getUniforms'] = [uniforms[u] for u in sorted(uniforms.keys())]
if options.output and options.output != '-':
output = open(options.output, 'w')
else:
output = sys.stdout
output.write(pystache.render(open(options.template).read(), context))
if __name__ == '__main__':
sys.exit(main(sys.argv))

View File

@@ -82,8 +82,6 @@ else:
variables.PYTHON = 'python'
variables.PHANTOMJS = 'phantomjs'
TEMPLATE_GLSL_COMPILER_JS = 'build/glsl-unit/bin/template_glsl_compiler.js'
variables.BRANCH = output(
'%(GIT)s', 'rev-parse', '--abbrev-ref', 'HEAD').strip()
@@ -243,17 +241,16 @@ def build_src_external_src_types_js(t):
'--typedef', 'src/objectliterals.jsdoc')
if os.path.exists(TEMPLATE_GLSL_COMPILER_JS):
for glsl_src in GLSL_SRC:
def shader_src_helper(glsl_src):
@target(glsl_src.replace('.glsl', 'shader.js'), glsl_src,
'src/ol/webgl/shader.mustache')
def shader_src(t):
t.run('%(NODE)s', TEMPLATE_GLSL_COMPILER_JS,
'--input', glsl_src,
'--template', 'src/ol/webgl/shader.mustache',
'--output', t.name)
shader_src_helper(glsl_src)
for glsl_src in GLSL_SRC:
def shader_src_helper(glsl_src):
@target(glsl_src.replace('.glsl', 'shader.js'), glsl_src,
'src/ol/webgl/shader.mustache', 'bin/pyglslunit.py')
def shader_src(t):
t.run('%(PYTHON)s', 'bin/pyglslunit.py',
'--input', glsl_src,
'--template', 'src/ol/webgl/shader.mustache',
'--output', t.name)
shader_src_helper(glsl_src)
def _build_require_list(dependencies, output_file_name):

2
requirements.txt Normal file
View File

@@ -0,0 +1,2 @@
pystache
regex

View File

@@ -1,6 +1,10 @@
// This file is automatically generated, do not edit
goog.provide('ol.renderer.webgl.map.shader.Color');
goog.require('ol.webgl.shader');
/**
* @constructor
* @extends {ol.webgl.shader.Fragment}
@@ -10,16 +14,22 @@ ol.renderer.webgl.map.shader.ColorFragment = function() {
};
goog.inherits(ol.renderer.webgl.map.shader.ColorFragment, ol.webgl.shader.Fragment);
goog.addSingletonGetter(ol.renderer.webgl.map.shader.ColorFragment);
/**
* @const
* @type {string}
*/
ol.renderer.webgl.map.shader.ColorFragment.DEBUG_SOURCE = 'precision mediump float;\n//! NAMESPACE=ol.renderer.webgl.map.shader.Color\n//! CLASS=ol.renderer.webgl.map.shader.Color\n\n\n//! COMMON\nvarying vec2 v_texCoord;\n\n\n//! FRAGMENT\n// @see https://svn.webkit.org/repository/webkit/trunk/Source/WebCore/platform/graphics/filters/skia/SkiaImageFilterBuilder.cpp\nuniform mat4 u_colorMatrix;\nuniform float u_opacity;\nuniform sampler2D u_texture;\n\nvoid main(void) {\n vec4 texColor = texture2D(u_texture, v_texCoord);\n gl_FragColor.rgb = (u_colorMatrix * vec4(texColor.rgb, 1.)).rgb;\n gl_FragColor.a = texColor.a * u_opacity;\n}\n\n';
ol.renderer.webgl.map.shader.ColorFragment.DEBUG_SOURCE = 'precision mediump float;\nvarying vec2 v_texCoord;\n\n\n// @see https://svn.webkit.org/repository/webkit/trunk/Source/WebCore/platform/graphics/filters/skia/SkiaImageFilterBuilder.cpp\nuniform mat4 u_colorMatrix;\nuniform float u_opacity;\nuniform sampler2D u_texture;\n\nvoid main(void) {\n vec4 texColor = texture2D(u_texture, v_texCoord);\n gl_FragColor.rgb = (u_colorMatrix * vec4(texColor.rgb, 1.)).rgb;\n gl_FragColor.a = texColor.a * u_opacity;\n}\n';
/**
* @const
* @type {string}
*/
ol.renderer.webgl.map.shader.ColorFragment.OPTIMIZED_SOURCE = 'precision mediump float;varying vec2 a;uniform mat4 d;uniform float e;uniform sampler2D f;void main(){vec4 g=texture2D(f,a);gl_FragColor.rgb=(d*vec4(g.rgb,1)).rgb;gl_FragColor.a=g.a*e;}';
ol.renderer.webgl.map.shader.ColorFragment.OPTIMIZED_SOURCE = 'precision mediump float;varying vec2 a;uniform mat4 f;uniform float g;uniform sampler2D h;void main(void){vec4 texColor=texture2D(h,a);gl_FragColor.rgb=(f*vec4(texColor.rgb,1.)).rgb;gl_FragColor.a=texColor.a*g;}';
/**
* @const
* @type {string}
@@ -27,6 +37,9 @@ ol.renderer.webgl.map.shader.ColorFragment.OPTIMIZED_SOURCE = 'precision mediump
ol.renderer.webgl.map.shader.ColorFragment.SOURCE = goog.DEBUG ?
ol.renderer.webgl.map.shader.ColorFragment.DEBUG_SOURCE :
ol.renderer.webgl.map.shader.ColorFragment.OPTIMIZED_SOURCE;
/**
* @constructor
* @extends {ol.webgl.shader.Vertex}
@@ -36,16 +49,22 @@ ol.renderer.webgl.map.shader.ColorVertex = function() {
};
goog.inherits(ol.renderer.webgl.map.shader.ColorVertex, ol.webgl.shader.Vertex);
goog.addSingletonGetter(ol.renderer.webgl.map.shader.ColorVertex);
/**
* @const
* @type {string}
*/
ol.renderer.webgl.map.shader.ColorVertex.DEBUG_SOURCE = '//! NAMESPACE=ol.renderer.webgl.map.shader.Color\n//! CLASS=ol.renderer.webgl.map.shader.Color\n\n\n//! COMMON\nvarying vec2 v_texCoord;\n\n\n//! VERTEX\nattribute vec2 a_position;\nattribute vec2 a_texCoord;\n\nuniform mat4 u_texCoordMatrix;\nuniform mat4 u_projectionMatrix;\n\nvoid main(void) {\n gl_Position = u_projectionMatrix * vec4(a_position, 0., 1.);\n v_texCoord = (u_texCoordMatrix * vec4(a_texCoord, 0., 1.)).st;\n}\n\n\n';
ol.renderer.webgl.map.shader.ColorVertex.DEBUG_SOURCE = 'varying vec2 v_texCoord;\n\n\nattribute vec2 a_position;\nattribute vec2 a_texCoord;\n\nuniform mat4 u_texCoordMatrix;\nuniform mat4 u_projectionMatrix;\n\nvoid main(void) {\n gl_Position = u_projectionMatrix * vec4(a_position, 0., 1.);\n v_texCoord = (u_texCoordMatrix * vec4(a_texCoord, 0., 1.)).st;\n}\n\n\n';
/**
* @const
* @type {string}
*/
ol.renderer.webgl.map.shader.ColorVertex.OPTIMIZED_SOURCE = 'varying vec2 a;attribute vec2 d,e;uniform mat4 b,c;void main(){gl_Position=c*vec4(d,0,1);a=(b*vec4(e,0,1)).st;}';
ol.renderer.webgl.map.shader.ColorVertex.OPTIMIZED_SOURCE = 'varying vec2 a;attribute vec2 b;attribute vec2 c;uniform mat4 d;uniform mat4 e;void main(void){gl_Position=e*vec4(b,0.,1.);a=(d*vec4(c,0.,1.)).st;}';
/**
* @const
* @type {string}
@@ -53,45 +72,55 @@ ol.renderer.webgl.map.shader.ColorVertex.OPTIMIZED_SOURCE = 'varying vec2 a;attr
ol.renderer.webgl.map.shader.ColorVertex.SOURCE = goog.DEBUG ?
ol.renderer.webgl.map.shader.ColorVertex.DEBUG_SOURCE :
ol.renderer.webgl.map.shader.ColorVertex.OPTIMIZED_SOURCE;
/**
* @constructor
* @param {WebGLRenderingContext} gl GL.
* @param {WebGLProgram} program Program.
*/
ol.renderer.webgl.map.shader.Color.Locations = function(gl, program) {
/**
* @type {WebGLUniformLocation}
*/
this.u_texCoordMatrix = gl.getUniformLocation(
program, goog.DEBUG ? 'u_texCoordMatrix' : 'b');
/**
* @type {WebGLUniformLocation}
*/
this.u_projectionMatrix = gl.getUniformLocation(
program, goog.DEBUG ? 'u_projectionMatrix' : 'c');
/**
* @type {WebGLUniformLocation}
*/
this.u_colorMatrix = gl.getUniformLocation(
program, goog.DEBUG ? 'u_colorMatrix' : 'd');
program, goog.DEBUG ? 'u_colorMatrix' : 'f');
/**
* @type {WebGLUniformLocation}
*/
this.u_opacity = gl.getUniformLocation(
program, goog.DEBUG ? 'u_opacity' : 'e');
program, goog.DEBUG ? 'u_opacity' : 'g');
/**
* @type {WebGLUniformLocation}
*/
this.u_projectionMatrix = gl.getUniformLocation(
program, goog.DEBUG ? 'u_projectionMatrix' : 'e');
/**
* @type {WebGLUniformLocation}
*/
this.u_texCoordMatrix = gl.getUniformLocation(
program, goog.DEBUG ? 'u_texCoordMatrix' : 'd');
/**
* @type {WebGLUniformLocation}
*/
this.u_texture = gl.getUniformLocation(
program, goog.DEBUG ? 'u_texture' : 'f');
program, goog.DEBUG ? 'u_texture' : 'h');
/**
* @type {number}
*/
this.a_position = gl.getAttribLocation(
program, goog.DEBUG ? 'a_position' : 'd');
program, goog.DEBUG ? 'a_position' : 'b');
/**
* @type {number}
*/
this.a_texCoord = gl.getAttribLocation(
program, goog.DEBUG ? 'a_texCoord' : 'e');
program, goog.DEBUG ? 'a_texCoord' : 'c');
};

View File

@@ -1,6 +1,10 @@
// This file is automatically generated, do not edit
goog.provide('ol.renderer.webgl.map.shader.Default');
goog.require('ol.webgl.shader');
/**
* @constructor
* @extends {ol.webgl.shader.Fragment}
@@ -10,16 +14,22 @@ ol.renderer.webgl.map.shader.DefaultFragment = function() {
};
goog.inherits(ol.renderer.webgl.map.shader.DefaultFragment, ol.webgl.shader.Fragment);
goog.addSingletonGetter(ol.renderer.webgl.map.shader.DefaultFragment);
/**
* @const
* @type {string}
*/
ol.renderer.webgl.map.shader.DefaultFragment.DEBUG_SOURCE = 'precision mediump float;\n//! NAMESPACE=ol.renderer.webgl.map.shader.Default\n//! CLASS=ol.renderer.webgl.map.shader.Default\n\n\n//! COMMON\nvarying vec2 v_texCoord;\n\n\n//! FRAGMENT\nuniform float u_opacity;\nuniform sampler2D u_texture;\n\nvoid main(void) {\n vec4 texColor = texture2D(u_texture, v_texCoord);\n gl_FragColor.rgb = texColor.rgb;\n gl_FragColor.a = texColor.a * u_opacity;\n}\n\n';
ol.renderer.webgl.map.shader.DefaultFragment.DEBUG_SOURCE = 'precision mediump float;\nvarying vec2 v_texCoord;\n\n\nuniform float u_opacity;\nuniform sampler2D u_texture;\n\nvoid main(void) {\n vec4 texColor = texture2D(u_texture, v_texCoord);\n gl_FragColor.rgb = texColor.rgb;\n gl_FragColor.a = texColor.a * u_opacity;\n}\n';
/**
* @const
* @type {string}
*/
ol.renderer.webgl.map.shader.DefaultFragment.OPTIMIZED_SOURCE = 'precision mediump float;varying vec2 a;uniform float d;uniform sampler2D e;void main(){vec4 f=texture2D(e,a);gl_FragColor.rgb=f.rgb;gl_FragColor.a=f.a*d;}';
ol.renderer.webgl.map.shader.DefaultFragment.OPTIMIZED_SOURCE = 'precision mediump float;varying vec2 a;uniform float f;uniform sampler2D g;void main(void){vec4 texColor=texture2D(g,a);gl_FragColor.rgb=texColor.rgb;gl_FragColor.a=texColor.a*f;}';
/**
* @const
* @type {string}
@@ -27,6 +37,9 @@ ol.renderer.webgl.map.shader.DefaultFragment.OPTIMIZED_SOURCE = 'precision mediu
ol.renderer.webgl.map.shader.DefaultFragment.SOURCE = goog.DEBUG ?
ol.renderer.webgl.map.shader.DefaultFragment.DEBUG_SOURCE :
ol.renderer.webgl.map.shader.DefaultFragment.OPTIMIZED_SOURCE;
/**
* @constructor
* @extends {ol.webgl.shader.Vertex}
@@ -36,16 +49,22 @@ ol.renderer.webgl.map.shader.DefaultVertex = function() {
};
goog.inherits(ol.renderer.webgl.map.shader.DefaultVertex, ol.webgl.shader.Vertex);
goog.addSingletonGetter(ol.renderer.webgl.map.shader.DefaultVertex);
/**
* @const
* @type {string}
*/
ol.renderer.webgl.map.shader.DefaultVertex.DEBUG_SOURCE = '//! NAMESPACE=ol.renderer.webgl.map.shader.Default\n//! CLASS=ol.renderer.webgl.map.shader.Default\n\n\n//! COMMON\nvarying vec2 v_texCoord;\n\n\n//! VERTEX\nattribute vec2 a_position;\nattribute vec2 a_texCoord;\n\nuniform mat4 u_texCoordMatrix;\nuniform mat4 u_projectionMatrix;\n\nvoid main(void) {\n gl_Position = u_projectionMatrix * vec4(a_position, 0., 1.);\n v_texCoord = (u_texCoordMatrix * vec4(a_texCoord, 0., 1.)).st;\n}\n\n\n';
ol.renderer.webgl.map.shader.DefaultVertex.DEBUG_SOURCE = 'varying vec2 v_texCoord;\n\n\nattribute vec2 a_position;\nattribute vec2 a_texCoord;\n\nuniform mat4 u_texCoordMatrix;\nuniform mat4 u_projectionMatrix;\n\nvoid main(void) {\n gl_Position = u_projectionMatrix * vec4(a_position, 0., 1.);\n v_texCoord = (u_texCoordMatrix * vec4(a_texCoord, 0., 1.)).st;\n}\n\n\n';
/**
* @const
* @type {string}
*/
ol.renderer.webgl.map.shader.DefaultVertex.OPTIMIZED_SOURCE = 'varying vec2 a;attribute vec2 d,e;uniform mat4 b,c;void main(){gl_Position=c*vec4(d,0,1);a=(b*vec4(e,0,1)).st;}';
ol.renderer.webgl.map.shader.DefaultVertex.OPTIMIZED_SOURCE = 'varying vec2 a;attribute vec2 b;attribute vec2 c;uniform mat4 d;uniform mat4 e;void main(void){gl_Position=e*vec4(b,0.,1.);a=(d*vec4(c,0.,1.)).st;}';
/**
* @const
* @type {string}
@@ -53,40 +72,49 @@ ol.renderer.webgl.map.shader.DefaultVertex.OPTIMIZED_SOURCE = 'varying vec2 a;at
ol.renderer.webgl.map.shader.DefaultVertex.SOURCE = goog.DEBUG ?
ol.renderer.webgl.map.shader.DefaultVertex.DEBUG_SOURCE :
ol.renderer.webgl.map.shader.DefaultVertex.OPTIMIZED_SOURCE;
/**
* @constructor
* @param {WebGLRenderingContext} gl GL.
* @param {WebGLProgram} program Program.
*/
ol.renderer.webgl.map.shader.Default.Locations = function(gl, program) {
/**
* @type {WebGLUniformLocation}
*/
this.u_texCoordMatrix = gl.getUniformLocation(
program, goog.DEBUG ? 'u_texCoordMatrix' : 'b');
/**
* @type {WebGLUniformLocation}
*/
this.u_projectionMatrix = gl.getUniformLocation(
program, goog.DEBUG ? 'u_projectionMatrix' : 'c');
/**
* @type {WebGLUniformLocation}
*/
this.u_opacity = gl.getUniformLocation(
program, goog.DEBUG ? 'u_opacity' : 'd');
program, goog.DEBUG ? 'u_opacity' : 'f');
/**
* @type {WebGLUniformLocation}
*/
this.u_projectionMatrix = gl.getUniformLocation(
program, goog.DEBUG ? 'u_projectionMatrix' : 'e');
/**
* @type {WebGLUniformLocation}
*/
this.u_texCoordMatrix = gl.getUniformLocation(
program, goog.DEBUG ? 'u_texCoordMatrix' : 'd');
/**
* @type {WebGLUniformLocation}
*/
this.u_texture = gl.getUniformLocation(
program, goog.DEBUG ? 'u_texture' : 'e');
program, goog.DEBUG ? 'u_texture' : 'g');
/**
* @type {number}
*/
this.a_position = gl.getAttribLocation(
program, goog.DEBUG ? 'a_position' : 'd');
program, goog.DEBUG ? 'a_position' : 'b');
/**
* @type {number}
*/
this.a_texCoord = gl.getAttribLocation(
program, goog.DEBUG ? 'a_texCoord' : 'e');
program, goog.DEBUG ? 'a_texCoord' : 'c');
};

View File

@@ -1,6 +1,10 @@
// This file is automatically generated, do not edit
goog.provide('ol.renderer.webgl.tilelayer.shader');
goog.require('ol.webgl.shader');
/**
* @constructor
* @extends {ol.webgl.shader.Fragment}
@@ -10,16 +14,22 @@ ol.renderer.webgl.tilelayer.shader.Fragment = function() {
};
goog.inherits(ol.renderer.webgl.tilelayer.shader.Fragment, ol.webgl.shader.Fragment);
goog.addSingletonGetter(ol.renderer.webgl.tilelayer.shader.Fragment);
/**
* @const
* @type {string}
*/
ol.renderer.webgl.tilelayer.shader.Fragment.DEBUG_SOURCE = 'precision mediump float;\n//! NAMESPACE=ol.renderer.webgl.tilelayer.shader\n//! CLASS=ol.renderer.webgl.tilelayer.shader.\n\n\n//! COMMON\nvarying vec2 v_texCoord;\n\n\n//! FRAGMENT\nuniform sampler2D u_texture;\n\nvoid main(void) {\n gl_FragColor = texture2D(u_texture, v_texCoord);\n}\n\n';
ol.renderer.webgl.tilelayer.shader.Fragment.DEBUG_SOURCE = 'precision mediump float;\nvarying vec2 v_texCoord;\n\n\nuniform sampler2D u_texture;\n\nvoid main(void) {\n gl_FragColor = texture2D(u_texture, v_texCoord);\n}\n';
/**
* @const
* @type {string}
*/
ol.renderer.webgl.tilelayer.shader.Fragment.OPTIMIZED_SOURCE = 'precision mediump float;varying vec2 a;uniform sampler2D c;void main(){gl_FragColor=texture2D(c,a);}';
ol.renderer.webgl.tilelayer.shader.Fragment.OPTIMIZED_SOURCE = 'precision mediump float;varying vec2 a;uniform sampler2D e;void main(void){gl_FragColor=texture2D(e,a);}';
/**
* @const
* @type {string}
@@ -27,6 +37,9 @@ ol.renderer.webgl.tilelayer.shader.Fragment.OPTIMIZED_SOURCE = 'precision medium
ol.renderer.webgl.tilelayer.shader.Fragment.SOURCE = goog.DEBUG ?
ol.renderer.webgl.tilelayer.shader.Fragment.DEBUG_SOURCE :
ol.renderer.webgl.tilelayer.shader.Fragment.OPTIMIZED_SOURCE;
/**
* @constructor
* @extends {ol.webgl.shader.Vertex}
@@ -36,16 +49,22 @@ ol.renderer.webgl.tilelayer.shader.Vertex = function() {
};
goog.inherits(ol.renderer.webgl.tilelayer.shader.Vertex, ol.webgl.shader.Vertex);
goog.addSingletonGetter(ol.renderer.webgl.tilelayer.shader.Vertex);
/**
* @const
* @type {string}
*/
ol.renderer.webgl.tilelayer.shader.Vertex.DEBUG_SOURCE = '//! NAMESPACE=ol.renderer.webgl.tilelayer.shader\n//! CLASS=ol.renderer.webgl.tilelayer.shader.\n\n\n//! COMMON\nvarying vec2 v_texCoord;\n\n\n//! VERTEX\nattribute vec2 a_position;\nattribute vec2 a_texCoord;\nuniform vec4 u_tileOffset;\n\nvoid main(void) {\n gl_Position = vec4(a_position * u_tileOffset.xy + u_tileOffset.zw, 0., 1.);\n v_texCoord = a_texCoord;\n}\n\n\n';
ol.renderer.webgl.tilelayer.shader.Vertex.DEBUG_SOURCE = 'varying vec2 v_texCoord;\n\n\nattribute vec2 a_position;\nattribute vec2 a_texCoord;\nuniform vec4 u_tileOffset;\n\nvoid main(void) {\n gl_Position = vec4(a_position * u_tileOffset.xy + u_tileOffset.zw, 0., 1.);\n v_texCoord = a_texCoord;\n}\n\n\n';
/**
* @const
* @type {string}
*/
ol.renderer.webgl.tilelayer.shader.Vertex.OPTIMIZED_SOURCE = 'varying vec2 a;attribute vec2 c,d;uniform vec4 b;void main(){gl_Position=vec4(c*b.xy+b.zw,0,1);a=d;}';
ol.renderer.webgl.tilelayer.shader.Vertex.OPTIMIZED_SOURCE = 'varying vec2 a;attribute vec2 b;attribute vec2 c;uniform vec4 d;void main(void){gl_Position=vec4(b*d.xy+d.zw,0.,1.);a=c;}';
/**
* @const
* @type {string}
@@ -53,30 +72,37 @@ ol.renderer.webgl.tilelayer.shader.Vertex.OPTIMIZED_SOURCE = 'varying vec2 a;att
ol.renderer.webgl.tilelayer.shader.Vertex.SOURCE = goog.DEBUG ?
ol.renderer.webgl.tilelayer.shader.Vertex.DEBUG_SOURCE :
ol.renderer.webgl.tilelayer.shader.Vertex.OPTIMIZED_SOURCE;
/**
* @constructor
* @param {WebGLRenderingContext} gl GL.
* @param {WebGLProgram} program Program.
*/
ol.renderer.webgl.tilelayer.shader.Locations = function(gl, program) {
/**
* @type {WebGLUniformLocation}
*/
this.u_tileOffset = gl.getUniformLocation(
program, goog.DEBUG ? 'u_tileOffset' : 'b');
/**
* @type {WebGLUniformLocation}
*/
this.u_texture = gl.getUniformLocation(
program, goog.DEBUG ? 'u_texture' : 'c');
program, goog.DEBUG ? 'u_texture' : 'e');
/**
* @type {WebGLUniformLocation}
*/
this.u_tileOffset = gl.getUniformLocation(
program, goog.DEBUG ? 'u_tileOffset' : 'd');
/**
* @type {number}
*/
this.a_position = gl.getAttribLocation(
program, goog.DEBUG ? 'a_position' : 'c');
program, goog.DEBUG ? 'a_position' : 'b');
/**
* @type {number}
*/
this.a_texCoord = gl.getAttribLocation(
program, goog.DEBUG ? 'a_texCoord' : 'd');
program, goog.DEBUG ? 'a_texCoord' : 'c');
};

View File

@@ -1,6 +1,10 @@
// 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}
@@ -10,16 +14,22 @@ ol.renderer.webgl.vectorlayer2.shader.LineStringCollectionFragment = function()
};
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;\n//! NAMESPACE=ol.renderer.webgl.vectorlayer2.shader.LineStringCollection\n//! CLASS=ol.renderer.webgl.vectorlayer2.shader.LineStringCollection\n\n\n//! FRAGMENT\nuniform vec4 u_color;\n\nvoid main(void) {\n gl_FragColor = u_color;\n}\n\n';
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 b;void main(){gl_FragColor=b;}';
ol.renderer.webgl.vectorlayer2.shader.LineStringCollectionFragment.OPTIMIZED_SOURCE = 'precision mediump float;uniform vec4 c;void main(void){gl_FragColor=c;}';
/**
* @const
* @type {string}
@@ -27,6 +37,9 @@ ol.renderer.webgl.vectorlayer2.shader.LineStringCollectionFragment.OPTIMIZED_SOU
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}
@@ -36,16 +49,22 @@ ol.renderer.webgl.vectorlayer2.shader.LineStringCollectionVertex = function() {
};
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 = '//! NAMESPACE=ol.renderer.webgl.vectorlayer2.shader.LineStringCollection\n//! CLASS=ol.renderer.webgl.vectorlayer2.shader.LineStringCollection\n\n\n//! VERTEX\nattribute 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';
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 b;uniform mat4 a;void main(){gl_Position=a*vec4(b,0,1);}';
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}
@@ -53,25 +72,31 @@ ol.renderer.webgl.vectorlayer2.shader.LineStringCollectionVertex.OPTIMIZED_SOURC
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_modelViewMatrix = gl.getUniformLocation(
program, goog.DEBUG ? 'u_modelViewMatrix' : 'a');
/**
* @type {WebGLUniformLocation}
*/
this.u_color = gl.getUniformLocation(
program, goog.DEBUG ? 'u_color' : 'b');
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' : 'b');
program, goog.DEBUG ? 'a_position' : 'a');
};

View File

@@ -1,6 +1,10 @@
// 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}
@@ -10,16 +14,22 @@ ol.renderer.webgl.vectorlayer2.shader.PointCollectionFragment = function() {
};
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;\n//! NAMESPACE=ol.renderer.webgl.vectorlayer2.shader.PointCollection\n//! CLASS=ol.renderer.webgl.vectorlayer2.shader.PointCollection\n\n\n//! FRAGMENT\nuniform vec4 u_color;\n\nvoid main(void) {\n gl_FragColor = u_color;\n}\n\n';
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 c;void main(){gl_FragColor=c;}';
ol.renderer.webgl.vectorlayer2.shader.PointCollectionFragment.OPTIMIZED_SOURCE = 'precision mediump float;uniform vec4 d;void main(void){gl_FragColor=d;}';
/**
* @const
* @type {string}
@@ -27,6 +37,9 @@ ol.renderer.webgl.vectorlayer2.shader.PointCollectionFragment.OPTIMIZED_SOURCE =
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}
@@ -36,16 +49,22 @@ ol.renderer.webgl.vectorlayer2.shader.PointCollectionVertex = function() {
};
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 = '//! NAMESPACE=ol.renderer.webgl.vectorlayer2.shader.PointCollection\n//! CLASS=ol.renderer.webgl.vectorlayer2.shader.PointCollection\n\n\n//! VERTEX\nattribute 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';
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 c;uniform float a;uniform mat4 b;void main(){gl_Position=b*vec4(c,0,1);gl_PointSize=a;}';
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}
@@ -53,30 +72,37 @@ ol.renderer.webgl.vectorlayer2.shader.PointCollectionVertex.OPTIMIZED_SOURCE = '
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_pointSize = gl.getUniformLocation(
program, goog.DEBUG ? 'u_pointSize' : 'a');
/**
* @type {WebGLUniformLocation}
*/
this.u_modelViewMatrix = gl.getUniformLocation(
program, goog.DEBUG ? 'u_modelViewMatrix' : 'b');
/**
* @type {WebGLUniformLocation}
*/
this.u_color = gl.getUniformLocation(
program, goog.DEBUG ? 'u_color' : 'c');
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' : 'c');
program, goog.DEBUG ? 'a_position' : 'a');
};