diff options
| author | Hunter Kvalevog <hunter@kvog.sh> | 2026-04-18 13:46:50 -0500 |
|---|---|---|
| committer | Hunter Kvalevog <hunter@kvog.sh> | 2026-04-18 13:46:50 -0500 |
| commit | 711fcdc1fbcdcbe213bbf570fe133eb5ef63d96e (patch) | |
| tree | ce7d529fc8c0c16d54f3ec566d6c1a0afd93e38c /ffmpeg-shadertoy/main.c | |
| parent | 91cb787e5968449a0977ffa80a3daeb3ea5aff4a (diff) | |
ffmpeg-shadertoy: Embed GLSL shaders
Diffstat (limited to 'ffmpeg-shadertoy/main.c')
| -rw-r--r-- | ffmpeg-shadertoy/main.c | 52 |
1 files changed, 33 insertions, 19 deletions
diff --git a/ffmpeg-shadertoy/main.c b/ffmpeg-shadertoy/main.c index a7c450b..30d06ce 100644 --- a/ffmpeg-shadertoy/main.c +++ b/ffmpeg-shadertoy/main.c @@ -278,11 +278,38 @@ int main(int argc, char* argv[]) GL(glEnableVertexAttribArray(0)); GL(glEnableVertexAttribArray(1)); - const char* vs_src = SDL_LoadFile("vs.glsl", NULL); - if (!vs_src) { - fprintf(stderr, "Failed to load vertex shader: %s\n", SDL_GetError()); - return EXIT_FAILURE; - } +#define GLSL(_X) "#version 330 core\n" #_X + const char* vs_src = GLSL( + layout (location = 0) in vec3 p; + layout (location = 1) in vec2 t; + + void main() + { + gl_Position = vec4(p, 1.0f); + } + ); + const char* fs_src1 = GLSL( + // https://www.shadertoy.com/howto#q1 + + uniform vec4 iMouse; + uniform vec3 iResolution; + uniform float iTime; + + out vec4 f_color; + + void mainImage(out vec4, vec2); + + void main() + { + vec4 color; + mainImage(color, gl_FragCoord.xy); + f_color = color; + } + + // keep the line break below + + ); +#undef GLSL GLuint vs = GL(glCreateShader(GL_VERTEX_SHADER)); GL(glShaderSource(vs, 1, &vs_src, NULL)); @@ -296,32 +323,19 @@ int main(int argc, char* argv[]) return EXIT_FAILURE; } - const char* fs_src1 = SDL_LoadFile("fs1.glsl", NULL); - if (!fs_src1) { - fprintf(stderr, "Failed to load fragment shader: %s\n", SDL_GetError()); - return EXIT_FAILURE; - } - const char* fs_src2 = SDL_LoadFile(a_src, NULL); if (!fs_src2) { fprintf(stderr, "Failed to load source shader: %s\n", SDL_GetError()); return EXIT_FAILURE; } - const char* fs_src3 = SDL_LoadFile("fs2.glsl", NULL); - if (!fs_src3) { - fprintf(stderr, "Failed to load fragment shader: %s\n", SDL_GetError()); - return EXIT_FAILURE; - } - const char* fs_src[] = { fs_src1, fs_src2, - fs_src3, }; GLuint fs = GL(glCreateShader(GL_FRAGMENT_SHADER)); - GL(glShaderSource(fs, 3, fs_src, NULL)); + GL(glShaderSource(fs, 2, fs_src, NULL)); GL(glCompileShader(fs)); GLint fs_status = 0; GL(glGetShaderiv(fs, GL_COMPILE_STATUS, &fs_status)); |