/* <copyright> This file contains proprietary software owned by Motorola Mobility, Inc.<br/> No rights, expressed or implied, whatsoever to this software are provided by Motorola Mobility, Inc. hereunder.<br/> (c) Copyright 2011 Motorola Mobility, Inc. All Rights Reserved. </copyright> */ #ifdef GL_ES precision highp float; #endif uniform vec4 u_color1; uniform vec4 u_color2; uniform vec4 u_color3; uniform vec4 u_color4; uniform float u_colorStop1; uniform float u_colorStop2; uniform float u_colorStop3; uniform float u_colorStop4; uniform vec2 u_cos_sin_angle; //uniform int u_colorCount; // currently using 4 varying vec2 v_uv; void main(void) { float t = dot(v_uv, u_cos_sin_angle); vec4 color; if (t < u_colorStop1) color = u_color1; else if (t < u_colorStop2) { float tLocal = (t - u_colorStop1)/(u_colorStop2 - u_colorStop1); color = mix(u_color1,u_color2,tLocal); } else if (t < u_colorStop3) { float tLocal = (t - u_colorStop2)/(u_colorStop3 - u_colorStop2); color = mix(u_color2,u_color3,tLocal); } else if (t < u_colorStop4) { float tLocal = (t - u_colorStop3)/(u_colorStop4 - u_colorStop3); color = mix(u_color3,u_color4,tLocal); } else color = u_color4; gl_FragColor =color; }