X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=shaders%2Fblit_transition.h;h=f73d1d4191a9352734adfd67ff11540dab4613ce;hb=5f6a4f9df6c8accc89f1920bfe9ace3cbac4c4b6;hp=f5f304973fa8be35f40f6665f0ef8544cd95f0a1;hpb=a109f126d8adab622e38fbcc2d4281e75255246a;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/shaders/blit_transition.h b/shaders/blit_transition.h index f5f3049..f73d1d4 100644 --- a/shaders/blit_transition.h +++ b/shaders/blit_transition.h @@ -1,61 +1,18 @@ -#ifndef SHADER_blit_transition_H -#define SHADER_blit_transition_H -static void shader_blit_transition_link(void); -static void shader_blit_transition_register(void); -static struct vg_shader _shader_blit_transition = { - .name = "blit_transition", - .link = shader_blit_transition_link, - .vs = +#pragma once +#include "vg/vg_engine.h" +extern struct vg_shader _shader_blit_transition; +extern GLuint _uniform_blit_transition_uInverseRatio; +extern GLuint _uniform_blit_transition_uT; +static inline void shader_blit_transition_uInverseRatio(v2f v) { -.orig_file = "shaders/blit.vs", -.static_src = -"layout (location=0) in vec2 a_co;\n" -"out vec2 aUv;\n" -"\n" -"uniform vec2 uInverseRatio;\n" -"\n" -"void main()\n" -"{\n" -" gl_Position = vec4(a_co*2.0-1.0,0.0,1.0);\n" -" aUv = a_co * uInverseRatio;\n" -"}\n" -""}, - .fs = -{ -.orig_file = "shaders/blit_transition.fs", -.static_src = -"out vec4 FragColor;\n" -"in vec2 aUv;\n" -"uniform float uT;\n" -"\n" -"void main(){\n" -" float d = uT + distance( aUv, vec2(0.5,0.5) );\n" -"\n" -" vec3 vDither = vec3( dot( vec2( 171.0, 231.0 ), gl_FragCoord.xy) );\n" -" float dither = fract( vDither.g / 71.0 ) - 0.5;\n" -"\n" -" if( d+dither < -0.5 )\n" -" discard;\n" -"\n" -" FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );\n" -"}\n" -""}, -}; - -static GLuint _uniform_blit_transition_uInverseRatio; -static GLuint _uniform_blit_transition_uT; -static void shader_blit_transition_uInverseRatio(v2f v){ glUniform2fv(_uniform_blit_transition_uInverseRatio,1,v); } -static void shader_blit_transition_uT(float f){ +static inline void shader_blit_transition_uT(f32 f) +{ glUniform1f(_uniform_blit_transition_uT,f); } -static void shader_blit_transition_register(void){ - vg_shader_register( &_shader_blit_transition ); -} -static void shader_blit_transition_use(void){ glUseProgram(_shader_blit_transition.id); } -static void shader_blit_transition_link(void){ - _uniform_blit_transition_uInverseRatio = glGetUniformLocation( _shader_blit_transition.id, "uInverseRatio" ); - _uniform_blit_transition_uT = glGetUniformLocation( _shader_blit_transition.id, "uT" ); +static inline void shader_blit_transition_use(void); +static inline void shader_blit_transition_use(void) +{ + glUseProgram(_shader_blit_transition.id); } -#endif /* SHADER_blit_transition_H */