From 96a0a8c916533eb5625816192ed38488f639326d Mon Sep 17 00:00:00 2001 From: Nivesh Rajbhandari Date: Wed, 22 Feb 2012 11:00:20 -0800 Subject: Integrating canvas-2d drawing and WebGL fixes, including adding back WebGL materials. Signed-off-by: Nivesh Rajbhandari --- assets/shaders/Taper.vert.glsl | 122 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 122 insertions(+) create mode 100644 assets/shaders/Taper.vert.glsl (limited to 'assets/shaders/Taper.vert.glsl') diff --git a/assets/shaders/Taper.vert.glsl b/assets/shaders/Taper.vert.glsl new file mode 100644 index 00000000..30b73456 --- /dev/null +++ b/assets/shaders/Taper.vert.glsl @@ -0,0 +1,122 @@ +/* +This file contains proprietary software owned by Motorola Mobility, Inc.
+No rights, expressed or implied, whatsoever to this software are provided by Motorola Mobility, Inc. hereunder.
+(c) Copyright 2011 Motorola Mobility, Inc. All Rights Reserved. +
*/ + + +#ifdef GL_ES +precision highp float; +#endif + + +// attributes +attribute vec3 vert; +attribute vec3 normal; +attribute vec2 texcoord; + +// scalar uniforms +uniform float u_limit1; +uniform float u_limit2; +uniform float u_limit3; +uniform float u_taperAmount; +uniform float u_minVal; +uniform float u_maxVal; +uniform float u_center; + +uniform vec4 color; + + +// matrix uniforms +uniform mat4 u_mvMatrix; +uniform mat4 u_projMatrix; +uniform mat4 u_worldMatrix; + +varying vec4 v_color; + + + +float TaperAmount( float param ) +{ + // Bezier coordinates of the X coordinate. + // Adjust these to get tighter or looser + float tightness = 0.8; + + float x0, y0, x1, y1, x2, y2; + float t; + if (param < 0.5) + { + t = 2.0*param; + x0 = 0.0; y0 = 0.0; + x1 = tightness; y1 = 0.0; + x2 = 1.0; y2 = 0.5; + } + else + { + t = (param - 0.5)*2.0; + x0 = 0.0; y0 = 0.5; + x1 = 1.0 - tightness; y1 = 1.0; + x2 = 1.0; y2 = 1.0; + } + + float a = x0 - 2.0*x1 + x2; + float b = 2.0*(x1 - x0); + float c = x0 - t; + + float descr = sqrt( b*b - 4.0*a*c ); + float denom = 2.0*a; + float n1 = (-b + descr)/denom; + float n2 = (-b - descr)/denom; + if ((n1 >= 0.0) || (n1 <= 1.0)) t = n1; + else if ((n2 >= 0.0) || (n2 <= 1.0)) t = n2; + else + t = 0.0; + + float ya = y0 + t*(y1 - y0); + float yb = y1 + t*(y2 - y1); + float yc = ya + t*(yb - ya); + + return yc; +} + + +void main(void) +{ + vec3 pos = vert; + vec2 uv = texcoord; + + + float limit1 = u_limit1, + limit2 = u_limit2, + limit3 = u_limit2; + + v_color = vec4(texcoord.x, texcoord.y, 0, 1); + if ((uv.x > u_limit1) && (uv.x < u_limit3)) + { + float t; + if (uv.x < u_limit2) + { + t = (uv.x - u_limit1)/(u_limit2 - u_limit1); + } + else + { + t = 1.0 - (uv.x - u_limit2)/(u_limit3 - u_limit2); + } + t = TaperAmount( t ); + + float maxVal; + if (pos.y > u_center) + { + maxVal = u_maxVal; + } + else + { + maxVal = u_minVal; + } + + float yFrac = (pos.y - u_center)/(maxVal-u_center); + pos.y = pos.y - yFrac * (maxVal - u_center)*t*u_taperAmount; + } + + gl_Position = u_projMatrix * u_mvMatrix * vec4(pos,1.0) ; +} \ No newline at end of file -- cgit v1.2.3 From f775fb752cac57a0c1f6c42c8c60f5ff329eab32 Mon Sep 17 00:00:00 2001 From: Nivesh Rajbhandari Date: Wed, 22 Feb 2012 11:36:19 -0800 Subject: Revert "Integrating canvas-2d drawing and WebGL fixes, including adding back WebGL materials." This reverts commit 96a0a8c916533eb5625816192ed38488f639326d. --- assets/shaders/Taper.vert.glsl | 122 ----------------------------------------- 1 file changed, 122 deletions(-) delete mode 100644 assets/shaders/Taper.vert.glsl (limited to 'assets/shaders/Taper.vert.glsl') diff --git a/assets/shaders/Taper.vert.glsl b/assets/shaders/Taper.vert.glsl deleted file mode 100644 index 30b73456..00000000 --- a/assets/shaders/Taper.vert.glsl +++ /dev/null @@ -1,122 +0,0 @@ -/* -This file contains proprietary software owned by Motorola Mobility, Inc.
-No rights, expressed or implied, whatsoever to this software are provided by Motorola Mobility, Inc. hereunder.
-(c) Copyright 2011 Motorola Mobility, Inc. All Rights Reserved. -
*/ - - -#ifdef GL_ES -precision highp float; -#endif - - -// attributes -attribute vec3 vert; -attribute vec3 normal; -attribute vec2 texcoord; - -// scalar uniforms -uniform float u_limit1; -uniform float u_limit2; -uniform float u_limit3; -uniform float u_taperAmount; -uniform float u_minVal; -uniform float u_maxVal; -uniform float u_center; - -uniform vec4 color; - - -// matrix uniforms -uniform mat4 u_mvMatrix; -uniform mat4 u_projMatrix; -uniform mat4 u_worldMatrix; - -varying vec4 v_color; - - - -float TaperAmount( float param ) -{ - // Bezier coordinates of the X coordinate. - // Adjust these to get tighter or looser - float tightness = 0.8; - - float x0, y0, x1, y1, x2, y2; - float t; - if (param < 0.5) - { - t = 2.0*param; - x0 = 0.0; y0 = 0.0; - x1 = tightness; y1 = 0.0; - x2 = 1.0; y2 = 0.5; - } - else - { - t = (param - 0.5)*2.0; - x0 = 0.0; y0 = 0.5; - x1 = 1.0 - tightness; y1 = 1.0; - x2 = 1.0; y2 = 1.0; - } - - float a = x0 - 2.0*x1 + x2; - float b = 2.0*(x1 - x0); - float c = x0 - t; - - float descr = sqrt( b*b - 4.0*a*c ); - float denom = 2.0*a; - float n1 = (-b + descr)/denom; - float n2 = (-b - descr)/denom; - if ((n1 >= 0.0) || (n1 <= 1.0)) t = n1; - else if ((n2 >= 0.0) || (n2 <= 1.0)) t = n2; - else - t = 0.0; - - float ya = y0 + t*(y1 - y0); - float yb = y1 + t*(y2 - y1); - float yc = ya + t*(yb - ya); - - return yc; -} - - -void main(void) -{ - vec3 pos = vert; - vec2 uv = texcoord; - - - float limit1 = u_limit1, - limit2 = u_limit2, - limit3 = u_limit2; - - v_color = vec4(texcoord.x, texcoord.y, 0, 1); - if ((uv.x > u_limit1) && (uv.x < u_limit3)) - { - float t; - if (uv.x < u_limit2) - { - t = (uv.x - u_limit1)/(u_limit2 - u_limit1); - } - else - { - t = 1.0 - (uv.x - u_limit2)/(u_limit3 - u_limit2); - } - t = TaperAmount( t ); - - float maxVal; - if (pos.y > u_center) - { - maxVal = u_maxVal; - } - else - { - maxVal = u_minVal; - } - - float yFrac = (pos.y - u_center)/(maxVal-u_center); - pos.y = pos.y - yFrac * (maxVal - u_center)*t*u_taperAmount; - } - - gl_Position = u_projMatrix * u_mvMatrix * vec4(pos,1.0) ; -} \ No newline at end of file -- cgit v1.2.3 From d5b216d9d6d2b8cb93106e8f8ca351089d05b41d Mon Sep 17 00:00:00 2001 From: Nivesh Rajbhandari Date: Wed, 22 Feb 2012 11:52:31 -0800 Subject: Integrating canvas-2d and WebGL drawing fixes. Also adding back WebGL materials. Signed-off-by: Nivesh Rajbhandari --- assets/shaders/Taper.vert.glsl | 122 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 122 insertions(+) create mode 100644 assets/shaders/Taper.vert.glsl (limited to 'assets/shaders/Taper.vert.glsl') diff --git a/assets/shaders/Taper.vert.glsl b/assets/shaders/Taper.vert.glsl new file mode 100644 index 00000000..30b73456 --- /dev/null +++ b/assets/shaders/Taper.vert.glsl @@ -0,0 +1,122 @@ +/* +This file contains proprietary software owned by Motorola Mobility, Inc.
+No rights, expressed or implied, whatsoever to this software are provided by Motorola Mobility, Inc. hereunder.
+(c) Copyright 2011 Motorola Mobility, Inc. All Rights Reserved. +
*/ + + +#ifdef GL_ES +precision highp float; +#endif + + +// attributes +attribute vec3 vert; +attribute vec3 normal; +attribute vec2 texcoord; + +// scalar uniforms +uniform float u_limit1; +uniform float u_limit2; +uniform float u_limit3; +uniform float u_taperAmount; +uniform float u_minVal; +uniform float u_maxVal; +uniform float u_center; + +uniform vec4 color; + + +// matrix uniforms +uniform mat4 u_mvMatrix; +uniform mat4 u_projMatrix; +uniform mat4 u_worldMatrix; + +varying vec4 v_color; + + + +float TaperAmount( float param ) +{ + // Bezier coordinates of the X coordinate. + // Adjust these to get tighter or looser + float tightness = 0.8; + + float x0, y0, x1, y1, x2, y2; + float t; + if (param < 0.5) + { + t = 2.0*param; + x0 = 0.0; y0 = 0.0; + x1 = tightness; y1 = 0.0; + x2 = 1.0; y2 = 0.5; + } + else + { + t = (param - 0.5)*2.0; + x0 = 0.0; y0 = 0.5; + x1 = 1.0 - tightness; y1 = 1.0; + x2 = 1.0; y2 = 1.0; + } + + float a = x0 - 2.0*x1 + x2; + float b = 2.0*(x1 - x0); + float c = x0 - t; + + float descr = sqrt( b*b - 4.0*a*c ); + float denom = 2.0*a; + float n1 = (-b + descr)/denom; + float n2 = (-b - descr)/denom; + if ((n1 >= 0.0) || (n1 <= 1.0)) t = n1; + else if ((n2 >= 0.0) || (n2 <= 1.0)) t = n2; + else + t = 0.0; + + float ya = y0 + t*(y1 - y0); + float yb = y1 + t*(y2 - y1); + float yc = ya + t*(yb - ya); + + return yc; +} + + +void main(void) +{ + vec3 pos = vert; + vec2 uv = texcoord; + + + float limit1 = u_limit1, + limit2 = u_limit2, + limit3 = u_limit2; + + v_color = vec4(texcoord.x, texcoord.y, 0, 1); + if ((uv.x > u_limit1) && (uv.x < u_limit3)) + { + float t; + if (uv.x < u_limit2) + { + t = (uv.x - u_limit1)/(u_limit2 - u_limit1); + } + else + { + t = 1.0 - (uv.x - u_limit2)/(u_limit3 - u_limit2); + } + t = TaperAmount( t ); + + float maxVal; + if (pos.y > u_center) + { + maxVal = u_maxVal; + } + else + { + maxVal = u_minVal; + } + + float yFrac = (pos.y - u_center)/(maxVal-u_center); + pos.y = pos.y - yFrac * (maxVal - u_center)*t*u_taperAmount; + } + + gl_Position = u_projMatrix * u_mvMatrix * vec4(pos,1.0) ; +} \ No newline at end of file -- cgit v1.2.3