From 3644cb6def4f681c99959e5729e78ea353441fad Mon Sep 17 00:00:00 2001
From: Kris Kowal
Date: Fri, 6 Jul 2012 12:34:53 -0700
Subject: Normalize to unix line terminators
---
js/helper-classes/RDGE/src/core/script/fx/blur.js | 434 +++++++++++-----------
1 file changed, 217 insertions(+), 217 deletions(-)
(limited to 'js/helper-classes/RDGE/src/core/script/fx/blur.js')
diff --git a/js/helper-classes/RDGE/src/core/script/fx/blur.js b/js/helper-classes/RDGE/src/core/script/fx/blur.js
index a8788968..aa76b9ad 100755
--- a/js/helper-classes/RDGE/src/core/script/fx/blur.js
+++ b/js/helper-classes/RDGE/src/core/script/fx/blur.js
@@ -1,217 +1,217 @@
-/*
-Copyright (c) 2012, Motorola Mobility, Inc
-All Rights Reserved.
-BSD License.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- - Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- - Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- - Neither the name of Motorola Mobility nor the names of its contributors
- may be used to endorse or promote products derived from this software
- without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
- */
-
-
-// RDGE namespaces
-var RDGE = RDGE || {};
-RDGE.fx = RDGE.fx || {};
-
-/**
-* Implements a 5x5 blur.
-* See http://prideout.net/archive/bloom/
-* @param mipSizes - up to three pow2 mip sizes to be separately blurred
-* and combined with the src image, e.g. [256,128,64]
-* @param enAuxTexture - true to enable an extra texture to be added to
-* the weighted blur mips (see doBlur)
-*/
-RDGE.fx.fxBlur = function (mipSizes, enAuxTexture) {
- var separableBlurCombine_fshader = [
- "#ifdef GL_ES",
- "precision highp float;",
- "#endif",
-
- "varying vec2 vTexcoord;", // base tex coord
- "uniform vec4 vWeights;", // blend weights
-
- enAuxTexture ? "uniform sampler2D sTextureAux;" : "", // aux image (unweighted)
- "uniform sampler2D sTexture1;", // source texture #1
- mipSizes[0] ? "uniform sampler2D sTexture2;" : "", // source texture #2
- mipSizes[1] ? "uniform sampler2D sTexture3;" : "", // source texture #3
- mipSizes[2] ? "uniform sampler2D sTexture4;" : "", // source texture #4
-
- "void main()",
- "{",
- "vec4 blurCol = vWeights.x * texture2D(sTexture1, vTexcoord, -32.0);",
- mipSizes[0] ? "blurCol += vWeights.y * texture2D(sTexture2, vTexcoord, -32.0);" : "",
- mipSizes[1] ? "blurCol += vWeights.z * texture2D(sTexture3, vTexcoord, -32.0);" : "",
- mipSizes[2] ? "blurCol += vWeights.w * texture2D(sTexture4, vTexcoord, -32.0);" : "",
-
- enAuxTexture ? "gl_FragColor = texture2D(sTextureAux, vTexcoord, -32.0) + blurCol;" : "gl_FragColor = blurCol;",
- "}"
-
- ].join("\n");
-
-
- function renderInitBlur(quad) {
- quad.shader = RDGE.createShader(gl, 'separableBlur_vshader', 'separableBlur_fshader', ["vert", "texcoord"]);
- quad.renderObj = new RDGE.RenderObject(quad.shader);
-
- quad.vertBuffer = quadBuf.vertexObject;
- quad.uvBuffer = quadBuf.texCoordObject;
-
- quad.renderObj.addTexture("sTexture", 0, RDGE.UNIFORMTYPE.TEXTURE2D);
-
- quad.renderObj.addBuffers(quad.vertBuffer, gl.ARRAY_BUFFER, 3, 0, gl.FLOAT);
- quad.renderObj.addBuffers(quad.uvBuffer, gl.ARRAY_BUFFER, 2, 2, gl.FLOAT);
- };
-
- function renderInitCombine(quad) {
- quad.shader = RDGE.createShader(gl, 'separableBlur_vshader', separableBlurCombine_fshader, ["vert", "texcoord"]);
- quad.renderObj = new RDGE.RenderObject(quad.shader);
-
- quad.vertBuffer = quadBuf.vertexObject;
- quad.uvBuffer = quadBuf.texCoordObject;
-
- quad.renderObj.addTexture("sTexture1", 0, RDGE.UNIFORMTYPE.TEXTURE2D);
- quad.renderObj.addTexture("sTexture2", 1, RDGE.UNIFORMTYPE.TEXTURE2D);
- quad.renderObj.addTexture("sTexture3", 2, RDGE.UNIFORMTYPE.TEXTURE2D);
- quad.renderObj.addTexture("sTexture4", 3, RDGE.UNIFORMTYPE.TEXTURE2D);
- quad.renderObj.addTexture("sTextureAux", 4, RDGE.UNIFORMTYPE.TEXTURE2D);
-
- quad.renderObj.addBuffers(quad.vertBuffer, gl.ARRAY_BUFFER, 3, 0, gl.FLOAT);
- quad.renderObj.addBuffers(quad.uvBuffer, gl.ARRAY_BUFFER, 2, 2, gl.FLOAT);
- };
-
- // Screen aligned quad geometry
- var quadBuf = getScreenAlignedQuad();
-
- // Fbos for each mip level; two sets are used to pingpong horizontal and vertical blur
- mipSizes = mipSizes || [128, 64, 32];
-
- this.fboSet1 = [];
- this.fboSet2 = [];
-
- for (var i in mipSizes) {
- this.fboSet1.push(createRenderTargetTexture(mipSizes[i], mipSizes[i]));
- this.fboSet2.push(createRenderTargetTexture(mipSizes[i], mipSizes[i]));
- };
-
- // Blitter for downsampling
- this.blitQuad = new RDGE.ScreenQuad(null);
- this.blitQuad.initialize(RDGE.renderInitScreenQuad);
-
- // Blur shader
- this.blurQuad = new RDGE.ScreenQuad(null);
- this.blurQuad.initialize(renderInitBlur);
-
- this.v3Kernel = [5.0 / 16.0, 6.0 / 16.0, 5.0 / 16.0];
- this.blurQuad.renderObj.addUniform("vCoeffs", this.v3Kernel, RDGE.UNIFORMTYPE.FLOAT3);
-
- this.v2Offset = RDGE.vec2.zero();
- this.blurQuad.renderObj.addUniform("vOffset", this.v2Offset, RDGE.UNIFORMTYPE.FLOAT2);
-
- // Combine/blend shader
- this.combineQuad = new RDGE.ScreenQuad(null);
- this.combineQuad.initialize(renderInitCombine);
-
- this.v4Weights = [0.25, 0.25, 0.25, 0.25];
- this.combineQuad.renderObj.addUniform("vWeights", this.v4Weights, RDGE.UNIFORMTYPE.FLOAT4);
-};
-
-/**
-* Blurs the passed render target.
-* See http://prideout.net/archive/bloom/
-* @param srcTexture - source image to blur
-* @param dstRenderTarget - where to put the result of the blur
-* @param weights - array of 4 blend weights for the blurred mip levels
-* levels in the form [srcTexture-weight, mip0-weight,
-* mip1-weight, mip2-weight]
-* @param auxTexture - null, else an extra texture to be added to the
-* weighted blur mips
-*/
-RDGE.fx.fxBlur.prototype.doBlur = function (srcTexture, dstRenderTarget, weights, auxTexture) {
- // Set weights
- this.v4Weights[0] = (weights == undefined) ? 0.25 : weights[0];
- this.v4Weights[1] = (weights == undefined) ? 0.25 : weights[1];
- this.v4Weights[2] = (weights == undefined) ? 0.25 : weights[2];
- this.v4Weights[3] = (weights == undefined) ? 0.25 : weights[3];
-
- // Do horizontal blur of fbo set 1 into fbo set 2
- for (var i = 0, fboSrc, fboDst; (fboSrc = srcTexture) && (fboDst = this.fboSet2[i]); i++) {
- gl.bindFramebuffer(gl.FRAMEBUFFER, fboDst.frameBuffer);
- gl.viewport(0, 0, fboDst.frameBuffer.width, fboDst.frameBuffer.height);
- gl.clear(gl.COLOR_BUFFER_BIT);
- gl.disable(gl.DEPTH_TEST);
-
- this.v2Offset[0] = 0.0;
- this.v2Offset[1] = 1.2 / fboDst.frameBuffer.width;
-
- this.blurQuad.texture = fboSrc;
-
- RDGE.renderProcScreenQuad(this.blurQuad);
- }
-
- // Do vertical blur of fbo set 2 into fbo set 1
- for (var i = 0, fboSrc, fboDst; (fboSrc = this.fboSet2[i]) && (fboDst = this.fboSet1[i]); i++) {
- gl.bindFramebuffer(gl.FRAMEBUFFER, fboDst.frameBuffer);
- gl.viewport(0, 0, fboDst.frameBuffer.width, fboDst.frameBuffer.height);
- gl.clear(gl.COLOR_BUFFER_BIT);
- gl.disable(gl.DEPTH_TEST);
-
- this.v2Offset[0] = 1.2 / fboDst.frameBuffer.width;
- this.v2Offset[1] = 0.0;
-
- this.blurQuad.texture = fboSrc;
-
- RDGE.renderProcScreenQuad(this.blurQuad);
- }
-
- // Do a weighted combine of the textures in fbo set 1
- gl.bindFramebuffer(gl.FRAMEBUFFER, dstRenderTarget ? dstRenderTarget.frameBuffer : null);
- gl.viewport(0, 0, RDGE.globals.width, RDGE.globals.height);
- gl.clear(gl.COLOR_BUFFER_BIT);
-
- gl.disable(gl.DEPTH_TEST);
-
- gl.useProgram(this.combineQuad.shader);
-
- this.combineQuad.renderObj.bindBuffers();
- this.combineQuad.renderObj.bindTextures();
- this.combineQuad.renderObj.bindUniforms();
-
- gl.activeTexture(gl.TEXTURE0);
- gl.bindTexture(gl.TEXTURE_2D, srcTexture);
- gl.activeTexture(gl.TEXTURE1);
- gl.bindTexture(gl.TEXTURE_2D, this.fboSet1[0]);
- gl.activeTexture(gl.TEXTURE2);
- gl.bindTexture(gl.TEXTURE_2D, this.fboSet1[1]);
- gl.activeTexture(gl.TEXTURE3);
- gl.bindTexture(gl.TEXTURE_2D, this.fboSet1[2]);
- gl.activeTexture(gl.TEXTURE4);
- gl.bindTexture(gl.TEXTURE_2D, auxTexture);
- gl.activeTexture(gl.TEXTURE0);
-
- gl.drawArrays(gl.TRIANGLES, 0, 6);
-
- gl.enable(gl.DEPTH_TEST);
- gl.useProgram(null);
-
- return dstRenderTarget;
-};
+/*
+Copyright (c) 2012, Motorola Mobility, Inc
+All Rights Reserved.
+BSD License.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ - Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ - Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ - Neither the name of Motorola Mobility nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+ */
+
+
+// RDGE namespaces
+var RDGE = RDGE || {};
+RDGE.fx = RDGE.fx || {};
+
+/**
+* Implements a 5x5 blur.
+* See http://prideout.net/archive/bloom/
+* @param mipSizes - up to three pow2 mip sizes to be separately blurred
+* and combined with the src image, e.g. [256,128,64]
+* @param enAuxTexture - true to enable an extra texture to be added to
+* the weighted blur mips (see doBlur)
+*/
+RDGE.fx.fxBlur = function (mipSizes, enAuxTexture) {
+ var separableBlurCombine_fshader = [
+ "#ifdef GL_ES",
+ "precision highp float;",
+ "#endif",
+
+ "varying vec2 vTexcoord;", // base tex coord
+ "uniform vec4 vWeights;", // blend weights
+
+ enAuxTexture ? "uniform sampler2D sTextureAux;" : "", // aux image (unweighted)
+ "uniform sampler2D sTexture1;", // source texture #1
+ mipSizes[0] ? "uniform sampler2D sTexture2;" : "", // source texture #2
+ mipSizes[1] ? "uniform sampler2D sTexture3;" : "", // source texture #3
+ mipSizes[2] ? "uniform sampler2D sTexture4;" : "", // source texture #4
+
+ "void main()",
+ "{",
+ "vec4 blurCol = vWeights.x * texture2D(sTexture1, vTexcoord, -32.0);",
+ mipSizes[0] ? "blurCol += vWeights.y * texture2D(sTexture2, vTexcoord, -32.0);" : "",
+ mipSizes[1] ? "blurCol += vWeights.z * texture2D(sTexture3, vTexcoord, -32.0);" : "",
+ mipSizes[2] ? "blurCol += vWeights.w * texture2D(sTexture4, vTexcoord, -32.0);" : "",
+
+ enAuxTexture ? "gl_FragColor = texture2D(sTextureAux, vTexcoord, -32.0) + blurCol;" : "gl_FragColor = blurCol;",
+ "}"
+
+ ].join("\n");
+
+
+ function renderInitBlur(quad) {
+ quad.shader = RDGE.createShader(gl, 'separableBlur_vshader', 'separableBlur_fshader', ["vert", "texcoord"]);
+ quad.renderObj = new RDGE.RenderObject(quad.shader);
+
+ quad.vertBuffer = quadBuf.vertexObject;
+ quad.uvBuffer = quadBuf.texCoordObject;
+
+ quad.renderObj.addTexture("sTexture", 0, RDGE.UNIFORMTYPE.TEXTURE2D);
+
+ quad.renderObj.addBuffers(quad.vertBuffer, gl.ARRAY_BUFFER, 3, 0, gl.FLOAT);
+ quad.renderObj.addBuffers(quad.uvBuffer, gl.ARRAY_BUFFER, 2, 2, gl.FLOAT);
+ };
+
+ function renderInitCombine(quad) {
+ quad.shader = RDGE.createShader(gl, 'separableBlur_vshader', separableBlurCombine_fshader, ["vert", "texcoord"]);
+ quad.renderObj = new RDGE.RenderObject(quad.shader);
+
+ quad.vertBuffer = quadBuf.vertexObject;
+ quad.uvBuffer = quadBuf.texCoordObject;
+
+ quad.renderObj.addTexture("sTexture1", 0, RDGE.UNIFORMTYPE.TEXTURE2D);
+ quad.renderObj.addTexture("sTexture2", 1, RDGE.UNIFORMTYPE.TEXTURE2D);
+ quad.renderObj.addTexture("sTexture3", 2, RDGE.UNIFORMTYPE.TEXTURE2D);
+ quad.renderObj.addTexture("sTexture4", 3, RDGE.UNIFORMTYPE.TEXTURE2D);
+ quad.renderObj.addTexture("sTextureAux", 4, RDGE.UNIFORMTYPE.TEXTURE2D);
+
+ quad.renderObj.addBuffers(quad.vertBuffer, gl.ARRAY_BUFFER, 3, 0, gl.FLOAT);
+ quad.renderObj.addBuffers(quad.uvBuffer, gl.ARRAY_BUFFER, 2, 2, gl.FLOAT);
+ };
+
+ // Screen aligned quad geometry
+ var quadBuf = getScreenAlignedQuad();
+
+ // Fbos for each mip level; two sets are used to pingpong horizontal and vertical blur
+ mipSizes = mipSizes || [128, 64, 32];
+
+ this.fboSet1 = [];
+ this.fboSet2 = [];
+
+ for (var i in mipSizes) {
+ this.fboSet1.push(createRenderTargetTexture(mipSizes[i], mipSizes[i]));
+ this.fboSet2.push(createRenderTargetTexture(mipSizes[i], mipSizes[i]));
+ };
+
+ // Blitter for downsampling
+ this.blitQuad = new RDGE.ScreenQuad(null);
+ this.blitQuad.initialize(RDGE.renderInitScreenQuad);
+
+ // Blur shader
+ this.blurQuad = new RDGE.ScreenQuad(null);
+ this.blurQuad.initialize(renderInitBlur);
+
+ this.v3Kernel = [5.0 / 16.0, 6.0 / 16.0, 5.0 / 16.0];
+ this.blurQuad.renderObj.addUniform("vCoeffs", this.v3Kernel, RDGE.UNIFORMTYPE.FLOAT3);
+
+ this.v2Offset = RDGE.vec2.zero();
+ this.blurQuad.renderObj.addUniform("vOffset", this.v2Offset, RDGE.UNIFORMTYPE.FLOAT2);
+
+ // Combine/blend shader
+ this.combineQuad = new RDGE.ScreenQuad(null);
+ this.combineQuad.initialize(renderInitCombine);
+
+ this.v4Weights = [0.25, 0.25, 0.25, 0.25];
+ this.combineQuad.renderObj.addUniform("vWeights", this.v4Weights, RDGE.UNIFORMTYPE.FLOAT4);
+};
+
+/**
+* Blurs the passed render target.
+* See http://prideout.net/archive/bloom/
+* @param srcTexture - source image to blur
+* @param dstRenderTarget - where to put the result of the blur
+* @param weights - array of 4 blend weights for the blurred mip levels
+* levels in the form [srcTexture-weight, mip0-weight,
+* mip1-weight, mip2-weight]
+* @param auxTexture - null, else an extra texture to be added to the
+* weighted blur mips
+*/
+RDGE.fx.fxBlur.prototype.doBlur = function (srcTexture, dstRenderTarget, weights, auxTexture) {
+ // Set weights
+ this.v4Weights[0] = (weights == undefined) ? 0.25 : weights[0];
+ this.v4Weights[1] = (weights == undefined) ? 0.25 : weights[1];
+ this.v4Weights[2] = (weights == undefined) ? 0.25 : weights[2];
+ this.v4Weights[3] = (weights == undefined) ? 0.25 : weights[3];
+
+ // Do horizontal blur of fbo set 1 into fbo set 2
+ for (var i = 0, fboSrc, fboDst; (fboSrc = srcTexture) && (fboDst = this.fboSet2[i]); i++) {
+ gl.bindFramebuffer(gl.FRAMEBUFFER, fboDst.frameBuffer);
+ gl.viewport(0, 0, fboDst.frameBuffer.width, fboDst.frameBuffer.height);
+ gl.clear(gl.COLOR_BUFFER_BIT);
+ gl.disable(gl.DEPTH_TEST);
+
+ this.v2Offset[0] = 0.0;
+ this.v2Offset[1] = 1.2 / fboDst.frameBuffer.width;
+
+ this.blurQuad.texture = fboSrc;
+
+ RDGE.renderProcScreenQuad(this.blurQuad);
+ }
+
+ // Do vertical blur of fbo set 2 into fbo set 1
+ for (var i = 0, fboSrc, fboDst; (fboSrc = this.fboSet2[i]) && (fboDst = this.fboSet1[i]); i++) {
+ gl.bindFramebuffer(gl.FRAMEBUFFER, fboDst.frameBuffer);
+ gl.viewport(0, 0, fboDst.frameBuffer.width, fboDst.frameBuffer.height);
+ gl.clear(gl.COLOR_BUFFER_BIT);
+ gl.disable(gl.DEPTH_TEST);
+
+ this.v2Offset[0] = 1.2 / fboDst.frameBuffer.width;
+ this.v2Offset[1] = 0.0;
+
+ this.blurQuad.texture = fboSrc;
+
+ RDGE.renderProcScreenQuad(this.blurQuad);
+ }
+
+ // Do a weighted combine of the textures in fbo set 1
+ gl.bindFramebuffer(gl.FRAMEBUFFER, dstRenderTarget ? dstRenderTarget.frameBuffer : null);
+ gl.viewport(0, 0, RDGE.globals.width, RDGE.globals.height);
+ gl.clear(gl.COLOR_BUFFER_BIT);
+
+ gl.disable(gl.DEPTH_TEST);
+
+ gl.useProgram(this.combineQuad.shader);
+
+ this.combineQuad.renderObj.bindBuffers();
+ this.combineQuad.renderObj.bindTextures();
+ this.combineQuad.renderObj.bindUniforms();
+
+ gl.activeTexture(gl.TEXTURE0);
+ gl.bindTexture(gl.TEXTURE_2D, srcTexture);
+ gl.activeTexture(gl.TEXTURE1);
+ gl.bindTexture(gl.TEXTURE_2D, this.fboSet1[0]);
+ gl.activeTexture(gl.TEXTURE2);
+ gl.bindTexture(gl.TEXTURE_2D, this.fboSet1[1]);
+ gl.activeTexture(gl.TEXTURE3);
+ gl.bindTexture(gl.TEXTURE_2D, this.fboSet1[2]);
+ gl.activeTexture(gl.TEXTURE4);
+ gl.bindTexture(gl.TEXTURE_2D, auxTexture);
+ gl.activeTexture(gl.TEXTURE0);
+
+ gl.drawArrays(gl.TRIANGLES, 0, 6);
+
+ gl.enable(gl.DEPTH_TEST);
+ gl.useProgram(null);
+
+ return dstRenderTarget;
+};
--
cgit v1.2.3