Refactor glsl-unit templates
This abuses the template system to allow both a single anonymous shader and multiple named shaders to be defined in a namespace.
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
//! NAMESPACE=ol.renderer.webgl.map
|
||||
//! NAMESPACE=ol.renderer.webgl.map.shader
|
||||
//! CLASS=ol.renderer.webgl.map.shader.
|
||||
|
||||
|
||||
//! COMMON
|
||||
|
||||
@@ -14,7 +14,7 @@ goog.addSingletonGetter(ol.renderer.webgl.map.shader.Fragment);
|
||||
* @const
|
||||
* @type {string}
|
||||
*/
|
||||
ol.renderer.webgl.map.shader.Fragment.DEBUG_SOURCE = 'precision mediump float;\n//! NAMESPACE=ol.renderer.webgl.map\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.Fragment.DEBUG_SOURCE = 'precision mediump float;\n//! NAMESPACE=ol.renderer.webgl.map.shader\n//! CLASS=ol.renderer.webgl.map.shader.\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';
|
||||
/**
|
||||
* @const
|
||||
* @type {string}
|
||||
@@ -40,7 +40,7 @@ goog.addSingletonGetter(ol.renderer.webgl.map.shader.Vertex);
|
||||
* @const
|
||||
* @type {string}
|
||||
*/
|
||||
ol.renderer.webgl.map.shader.Vertex.DEBUG_SOURCE = '//! NAMESPACE=ol.renderer.webgl.map\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.Vertex.DEBUG_SOURCE = '//! NAMESPACE=ol.renderer.webgl.map.shader\n//! CLASS=ol.renderer.webgl.map.shader.\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';
|
||||
/**
|
||||
* @const
|
||||
* @type {string}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
//! NAMESPACE=ol.renderer.webgl.tilelayer
|
||||
//! NAMESPACE=ol.renderer.webgl.tilelayer.shader
|
||||
//! CLASS=ol.renderer.webgl.tilelayer.shader.
|
||||
|
||||
|
||||
//! COMMON
|
||||
|
||||
@@ -14,7 +14,7 @@ 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\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;\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';
|
||||
/**
|
||||
* @const
|
||||
* @type {string}
|
||||
@@ -40,7 +40,7 @@ goog.addSingletonGetter(ol.renderer.webgl.tilelayer.shader.Vertex);
|
||||
* @const
|
||||
* @type {string}
|
||||
*/
|
||||
ol.renderer.webgl.tilelayer.shader.Vertex.DEBUG_SOURCE = '//! NAMESPACE=ol.renderer.webgl.tilelayer\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 = '//! 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';
|
||||
/**
|
||||
* @const
|
||||
* @type {string}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// This file is automatically generated, do not edit
|
||||
goog.provide('{{namespace}}.shader');
|
||||
goog.provide('{{namespace}}');
|
||||
|
||||
goog.require('ol.webgl.shader');
|
||||
|
||||
@@ -9,34 +9,34 @@ goog.require('ol.webgl.shader');
|
||||
* @constructor
|
||||
* @extends {ol.webgl.shader.Fragment}
|
||||
*/
|
||||
{{namespace}}.shader.Fragment = function() {
|
||||
goog.base(this, {{namespace}}.shader.Fragment.SOURCE);
|
||||
{{className}}Fragment = function() {
|
||||
goog.base(this, {{className}}Fragment.SOURCE);
|
||||
};
|
||||
goog.inherits({{namespace}}.shader.Fragment, ol.webgl.shader.Fragment);
|
||||
goog.addSingletonGetter({{namespace}}.shader.Fragment);
|
||||
goog.inherits({{className}}Fragment, ol.webgl.shader.Fragment);
|
||||
goog.addSingletonGetter({{className}}Fragment);
|
||||
|
||||
|
||||
/**
|
||||
* @const
|
||||
* @type {string}
|
||||
*/
|
||||
{{namespace}}.shader.Fragment.DEBUG_SOURCE = 'precision mediump float;\n{{getOriginalFragmentSource}}';
|
||||
{{className}}Fragment.DEBUG_SOURCE = 'precision mediump float;\n{{getOriginalFragmentSource}}';
|
||||
|
||||
|
||||
/**
|
||||
* @const
|
||||
* @type {string}
|
||||
*/
|
||||
{{namespace}}.shader.Fragment.OPTIMIZED_SOURCE = 'precision mediump float;{{getFragmentSource}}';
|
||||
{{className}}Fragment.OPTIMIZED_SOURCE = 'precision mediump float;{{getFragmentSource}}';
|
||||
|
||||
|
||||
/**
|
||||
* @const
|
||||
* @type {string}
|
||||
*/
|
||||
{{namespace}}.shader.Fragment.SOURCE = goog.DEBUG ?
|
||||
{{namespace}}.shader.Fragment.DEBUG_SOURCE :
|
||||
{{namespace}}.shader.Fragment.OPTIMIZED_SOURCE;
|
||||
{{className}}Fragment.SOURCE = goog.DEBUG ?
|
||||
{{className}}Fragment.DEBUG_SOURCE :
|
||||
{{className}}Fragment.OPTIMIZED_SOURCE;
|
||||
|
||||
|
||||
|
||||
@@ -44,40 +44,40 @@ goog.addSingletonGetter({{namespace}}.shader.Fragment);
|
||||
* @constructor
|
||||
* @extends {ol.webgl.shader.Vertex}
|
||||
*/
|
||||
{{namespace}}.shader.Vertex = function() {
|
||||
goog.base(this, {{namespace}}.shader.Vertex.SOURCE);
|
||||
{{className}}Vertex = function() {
|
||||
goog.base(this, {{className}}Vertex.SOURCE);
|
||||
};
|
||||
goog.inherits({{namespace}}.shader.Vertex, ol.webgl.shader.Vertex);
|
||||
goog.addSingletonGetter({{namespace}}.shader.Vertex);
|
||||
goog.inherits({{className}}Vertex, ol.webgl.shader.Vertex);
|
||||
goog.addSingletonGetter({{className}}Vertex);
|
||||
|
||||
|
||||
/**
|
||||
* @const
|
||||
* @type {string}
|
||||
*/
|
||||
{{namespace}}.shader.Vertex.DEBUG_SOURCE = '{{getOriginalVertexSource}}';
|
||||
{{className}}Vertex.DEBUG_SOURCE = '{{getOriginalVertexSource}}';
|
||||
|
||||
|
||||
/**
|
||||
* @const
|
||||
* @type {string}
|
||||
*/
|
||||
{{namespace}}.shader.Vertex.OPTIMIZED_SOURCE = '{{getVertexSource}}';
|
||||
{{className}}Vertex.OPTIMIZED_SOURCE = '{{getVertexSource}}';
|
||||
|
||||
|
||||
/**
|
||||
* @const
|
||||
* @type {string}
|
||||
*/
|
||||
{{namespace}}.shader.Vertex.SOURCE = goog.DEBUG ?
|
||||
{{namespace}}.shader.Vertex.DEBUG_SOURCE :
|
||||
{{namespace}}.shader.Vertex.OPTIMIZED_SOURCE;
|
||||
{{className}}Vertex.SOURCE = goog.DEBUG ?
|
||||
{{className}}Vertex.DEBUG_SOURCE :
|
||||
{{className}}Vertex.OPTIMIZED_SOURCE;
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
*/
|
||||
{{namespace}}.shader.uniform = function() {};
|
||||
{{namespace}}.uniform = function() {};
|
||||
{{#getUniforms}}
|
||||
|
||||
|
||||
@@ -85,7 +85,7 @@ goog.addSingletonGetter({{namespace}}.shader.Vertex);
|
||||
* @const
|
||||
* @type {string}
|
||||
*/
|
||||
{{namespace}}.shader.uniform.{{originalName}} =
|
||||
{{namespace}}.uniform.{{originalName}} =
|
||||
goog.DEBUG ? '{{originalName}}' : '{{shortName}}';
|
||||
{{/getUniforms}}
|
||||
|
||||
@@ -93,7 +93,7 @@ goog.addSingletonGetter({{namespace}}.shader.Vertex);
|
||||
/**
|
||||
* @constructor
|
||||
*/
|
||||
{{namespace}}.shader.attribute = function() {};
|
||||
{{namespace}}.attribute = function() {};
|
||||
{{#getAttributes}}
|
||||
|
||||
|
||||
@@ -101,6 +101,6 @@ goog.addSingletonGetter({{namespace}}.shader.Vertex);
|
||||
* @const
|
||||
* @type {string}
|
||||
*/
|
||||
{{namespace}}.shader.attribute.{{originalName}} =
|
||||
{{namespace}}.attribute.{{originalName}} =
|
||||
goog.DEBUG ? '{{originalName}}' : '{{shortName}}';
|
||||
{{/getAttributes}}
|
||||
|
||||
Reference in New Issue
Block a user