blob: 64cf56ff815a72e219431e224f3ef2ec576544af (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
/* <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;
}
|