summaryrefslogtreecommitdiff
path: root/drivers/gles2/shaders/canvas.glsl
blob: 66bdf15db4535c864d16e433036368bb1af85c23 (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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
[vertex]

#ifdef USE_GLES_OVER_GL
#define mediump
#define highp
#else
precision mediump float;
precision mediump int;
#endif

uniform highp mat4 projection_matrix;
uniform highp mat4 modelview_matrix;
uniform highp mat4 extra_matrix;
attribute highp vec3 vertex; // attrib:0
attribute vec4 color_attrib; // attrib:3
attribute highp vec2 uv_attrib; // attrib:4

varying vec2 uv_interp;
varying vec4 color_interp;

//uniform bool snap_pixels;

void main() {

	color_interp = color_attrib;
	uv_interp = uv_attrib;		
	highp vec4 outvec = vec4(vertex, 1.0);
	outvec = extra_matrix * outvec;
	outvec = modelview_matrix * outvec;
#ifdef USE_PIXEL_SNAP

		outvec.xy=floor(outvec.xy+0.5);
#endif
	gl_Position = projection_matrix * outvec;
}

[fragment]

#ifdef USE_GLES_OVER_GL
#define mediump
#define highp
#else
precision mediump float;
precision mediump int;
#endif

 // texunit:0
uniform sampler2D texture;

varying vec2 uv_interp;
varying vec4 color_interp;

#ifdef MOMO

#endif

void main() {

	vec4 color = color_interp;
	
	color *= texture2D( texture,  uv_interp );

#ifdef DEBUG_ENCODED_32
	highp float enc32 = dot( color,highp vec4(1.0 / (256.0 * 256.0 * 256.0),1.0 / (256.0 * 256.0),1.0 / 256.0,1)  );
	color = vec4(vec3(enc32),1.0);
#endif
	gl_FragColor = color;
}