X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;ds=sidebyside;f=shaders%2Fgate.h;fp=shaders%2Fgate.h;h=0000000000000000000000000000000000000000;hb=aa4c26eae2208872824e0eb5b71bc05c16d43242;hp=51eb312d2af53053f600b08fa3d982855c522b14;hpb=3e8fda9c7cbc50d1ae95195905c953bdeedf71b9;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/shaders/gate.h b/shaders/gate.h deleted file mode 100644 index 51eb312..0000000 --- a/shaders/gate.h +++ /dev/null @@ -1,112 +0,0 @@ -#ifndef SHADER_gate_H -#define SHADER_gate_H -static void shader_gate_link(void); -static void shader_gate_register(void); -static struct vg_shader _shader_gate = { - .name = "gate", - .link = shader_gate_link, - .vs = -{ -.orig_file = "../../shaders/gate.vs", -.static_src = -"layout (location=0) in vec3 a_co;\n" -"layout (location=1) in vec3 a_norm;\n" -"layout (location=2) in vec2 a_uv;\n" -"layout (location=3) in vec4 a_colour;\n" -"layout (location=4) in vec4 a_weights;\n" -"layout (location=5) in ivec4 a_groups;\n" -"\n" -"#line 2 0 \n" -"uniform mat4 uPv;\n" -"uniform mat4x3 uMdl;\n" -"\n" -"out vec3 aNorm;\n" -"out vec2 aUv;\n" -"out vec3 aCo;\n" -"\n" -"void main()\n" -"{\n" -" vec3 world_pos = uMdl * vec4( a_co, 1.0 );\n" -" gl_Position = uPv * vec4(world_pos,1.0);\n" -"\n" -" aNorm = a_norm;\n" -" aCo = world_pos;\n" -" aUv = a_uv;\n" -"}\n" -""}, - .fs = -{ -.orig_file = "../../shaders/gate.fs", -.static_src = -"out vec4 FragColor;\n" -"\n" -"uniform sampler2D uTexMain;\n" -"uniform sampler2D uTexWater;\n" -"uniform vec2 uInvRes;\n" -"uniform float uTime;\n" -"uniform vec3 uCam;\n" -"\n" -"in vec3 aNorm;\n" -"in vec2 aUv;\n" -"in vec3 aCo;\n" -"\n" -"void main()\n" -"{\n" -" vec2 ssuv = gl_FragCoord.xy*uInvRes;\n" -" vec4 mapwater = texture( uTexWater, vec2(aUv.x,aUv.y-uTime));\n" -"\n" -" float undistort = smoothstep(0.1,0.6,distance( uCam, aCo )*0.1);\n" -" vec2 trimedge = smoothstep(0.0,0.2,1.0-abs(ssuv-0.5)*2.0);\n" -" undistort *= trimedge.x * trimedge.y;\n" -"\n" -" vec2 warpamt = (mapwater.rg-0.5)*0.05*aUv.y*undistort;\n" -" vec4 mapbackbuffer = texture( uTexMain, ssuv + warpamt );\n" -"\n" -" float opacity = 1.0-smoothstep(0.4,1.0,aUv.y);\n" -" FragColor = vec4( mapbackbuffer.rgb, opacity );\n" -"}\n" -""}, -}; - -static GLuint _uniform_gate_uPv; -static GLuint _uniform_gate_uMdl; -static GLuint _uniform_gate_uTexMain; -static GLuint _uniform_gate_uTexWater; -static GLuint _uniform_gate_uInvRes; -static GLuint _uniform_gate_uTime; -static GLuint _uniform_gate_uCam; -static void shader_gate_uPv(m4x4f m){ - glUniformMatrix4fv( _uniform_gate_uPv, 1, GL_FALSE, (float *)m ); -} -static void shader_gate_uMdl(m4x3f m){ - glUniformMatrix4x3fv( _uniform_gate_uMdl, 1, GL_FALSE, (float *)m ); -} -static void shader_gate_uTexMain(int i){ - glUniform1i( _uniform_gate_uTexMain, i ); -} -static void shader_gate_uTexWater(int i){ - glUniform1i( _uniform_gate_uTexWater, i ); -} -static void shader_gate_uInvRes(v2f v){ - glUniform2fv( _uniform_gate_uInvRes, 1, v ); -} -static void shader_gate_uTime(float f){ - glUniform1f( _uniform_gate_uTime, f ); -} -static void shader_gate_uCam(v3f v){ - glUniform3fv( _uniform_gate_uCam, 1, v ); -} -static void shader_gate_register(void){ - vg_shader_register( &_shader_gate ); -} -static void shader_gate_use(void){ glUseProgram(_shader_gate.id); } -static void shader_gate_link(void){ - _uniform_gate_uPv = glGetUniformLocation( _shader_gate.id, "uPv" ); - _uniform_gate_uMdl = glGetUniformLocation( _shader_gate.id, "uMdl" ); - _uniform_gate_uTexMain = glGetUniformLocation( _shader_gate.id, "uTexMain" ); - _uniform_gate_uTexWater = glGetUniformLocation( _shader_gate.id, "uTexWater" ); - _uniform_gate_uInvRes = glGetUniformLocation( _shader_gate.id, "uInvRes" ); - _uniform_gate_uTime = glGetUniformLocation( _shader_gate.id, "uTime" ); - _uniform_gate_uCam = glGetUniformLocation( _shader_gate.id, "uCam" ); -} -#endif /* SHADER_gate_H */