aboutsummaryrefslogtreecommitdiff
path: root/render/gles3/shaders.c
blob: dd7f790fe624781671d2f5a74274b22c43de8c40 (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
#include "render/gles3.h"
#include <GLES3/gl3.h>

// Colored quads
const GLchar quad_vertex_src[] =
"uniform mat4 proj;"
"uniform vec4 color;"
"attribute vec2 pos;"
"attribute vec2 texcoord;"
"varying vec4 v_color;"
"varying vec2 v_texcoord;"
"void main() {"
"  gl_Position = proj * vec4(pos, 0.0, 1.0);"
"  v_color = color;"
"  v_texcoord = texcoord;"
"}";

const GLchar quad_fragment_src[] =
"precision mediump float;"
"varying vec4 v_color;"
"varying vec2 v_texcoord;"
"void main() {"
"  gl_FragColor = v_color;"
"}";

// Colored ellipses (TODO)

const GLchar ellipse_fragment_src[] =
"precision mediump float;"
"varying vec4 v_color;"
"varying vec2 v_texcoord;"
"void main() {"
"  float l = length(v_texcoord - vec2(0.5, 0.5));"
"  if (l > 0.5) discard;"
"  gl_FragColor = v_color;"
"}";

// Textured quads
const GLchar vertex_src[] =
"uniform mat4 proj;"
"attribute vec2 pos;"
"attribute vec2 texcoord;"
"varying vec2 v_texcoord;"
"void main() {"
"	gl_Position = proj * vec4(pos, 0.0, 1.0);"
"	v_texcoord = texcoord;"
"}";

const GLchar fragment_src_RGB[] =
"precision mediump float;"
"varying vec2 v_texcoord;"
"uniform sampler2D tex;"
"void main() {"
"	gl_FragColor = vec4(texture2D(tex, v_texcoord).rgb, 1.0);"
"}";

const GLchar fragment_src_RGBA[] =
"precision mediump float;"
"varying vec2 v_texcoord;"
"uniform sampler2D tex;"
"void main() {"
"	gl_FragColor = texture2D(tex, v_texcoord);"
"}";