-#define CELL_SHEET_X 512
-#define CELL_SHEET_Y 512
-
-SHADER_DEFINE( colour_shader,
-
- // VERTEX
- "layout (location=0) in vec2 a_co;"
- "uniform mat4 uPv;"
- "uniform mat4 uMdl;"
- ""
- "void main()"
- "{"
- " vec4 vert_pos = uPv * uMdl * vec4( a_co.x, 0.0, a_co.y, 1.0 );"
- " gl_Position = vert_pos;"
- "}",
-
- // FRAGMENT
- "out vec4 FragColor;"
- "uniform vec4 uColour;"
- ""
- "void main()"
- "{"
- " FragColor = uColour;"
- "}"
- ,
- UNIFORMS({ "uPv", "uMdl", "uColour" })
-)
-
-SHADER_DEFINE( tilemap_shader,
-
- // VERTEX
- "layout (location=0) in vec2 a_co;" // XY
- "layout (location=1) in vec2 a_offset;" // XY offset
- "layout (location=2) in vec4 a_data;" // atlas-uv, amt, other
- "uniform mat4 uPv;"
- "uniform vec2 uOrigin;"
- ""
- "out vec4 aCoords;"
- ""
- "void main()"
- "{"
- "vec2 world_coord = a_co+a_offset+uOrigin;"
- "gl_Position = uPv * vec4( world_coord.x, 0.0, world_coord.y, 1.0 );"
- "aCoords = vec4((a_co*0.98+0.01 + vec2(a_data.x,0.0)) * 0.0625, a_data.zw);"
- "}",
-
- // FRAGMENT
- "uniform sampler2D uTexTiles;"
- "uniform sampler2D uTexRipples;"
- "uniform float uTime;"
-
- "in vec4 aCoords;"
- "out vec4 FragColor;"
-
- "void main()"
- "{"
- "vec4 glyph = texture( uTexTiles, aCoords.xy );"
- "vec4 ripple = texture( uTexRipples, vec2( glyph.x - uTime, glyph.y ));"
- "float wstatus = -((aCoords.z/128.0)-1.0);" // -1 := None in, 0.0 := Hold middle, 1.0 := All out
- "float dev = step( 0.0, glyph.x+wstatus ) * step( glyph.x+wstatus, 1.0 );" //+ abs(glyph.y-0.5) );"
- "vec3 composite = mix( vec3(0.5,0.5,0.5), vec3(0.3,0.6,1.0) + ripple.xyz * 0.05, step( 0.75, glyph.a )*dev ) * glyph.z;"
- "FragColor = vec4( composite, 1.0 );"
- "}"
- ,
- UNIFORMS({ "uPv", "uTexTiles", "uTexRipples", "uTime", "uOrigin" })
-)
-
-SHADER_DEFINE( fish_shader,
- // VERTEX
- "layout (location=0) in vec2 a_co;" // XY UV
-
- "uniform mat4 uPv;"
- "uniform vec3 uPosition;"
-
- "out vec2 aTexCoords;"
-
- "void main()"
- "{"
- "vec2 world_coord = a_co + uPosition.xy;"
- "gl_Position = uPv * vec4( world_coord.x, 0.0, world_coord.y, 1.0 );"
- "aTexCoords = vec2( (a_co.x + uPosition.z) * 0.125, a_co.y );"
- "}",
- // FRAGMENT
- "uniform sampler2D uTexMain;"
- "uniform vec3 uColour;"
-
- "in vec2 aTexCoords;"
- "out vec4 FragColor;"
-
- "void main()"
- "{"
- "vec4 maintex = texture( uTexMain, aTexCoords );"
- "vec3 comp = mix( vec3(0.0,0.03,0.04), uColour, maintex.r );"
- "FragColor = vec4( comp, maintex.g * 0.7 );"
- "}",
- UNIFORMS({ "uPv", "uTexMain", "uColour", "uPosition" })
-)
-
-mat4 m_projection;
-mat4 m_view;
-mat4 m_mdl;