From 76e23d5e5e2ffcdd4551f1f029486eaba563cf10 Mon Sep 17 00:00:00 2001 From: brunoherbelin Date: Sat, 22 Nov 2025 23:55:12 +0100 Subject: [PATCH] Add example GLGL for source input, fix header input documentation --- CMakeLists.txt | 1 + rsc/shaders/filters/source.glsl | 12 ++++++++++++ src/ImageFilter.cpp | 4 ++-- 3 files changed, 15 insertions(+), 2 deletions(-) create mode 100644 rsc/shaders/filters/source.glsl diff --git a/CMakeLists.txt b/CMakeLists.txt index 64cfc4f..393f0b7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -719,6 +719,7 @@ set(VMIX_RSC_FILES ./rsc/shaders/filters/RGBnoise.glsl ./rsc/shaders/filters/3DPerlinNoise.glsl ./rsc/shaders/filters/3DSimplexNoise.glsl + ./rsc/shaders/filters/source.glsl ./rsc/images/logo.vmx ) diff --git a/rsc/shaders/filters/source.glsl b/rsc/shaders/filters/source.glsl new file mode 100644 index 0000000..7efb10b --- /dev/null +++ b/rsc/shaders/filters/source.glsl @@ -0,0 +1,12 @@ +// Texture from external Source +// by Bruno Herbelin for vimix +uniform sampler2D Source; + +void mainImage( out vec4 fragColor, in vec2 fragCoord ) +{ + vec2 uv = fragCoord.xy / iResolution.xy; + fragColor = texture(Source, uv); +} + + + diff --git a/src/ImageFilter.cpp b/src/ImageFilter.cpp index a7c85eb..41bc7e6 100644 --- a/src/ImageFilter.cpp +++ b/src/ImageFilter.cpp @@ -80,6 +80,7 @@ std::list< FilteringProgram > FilteringProgram::example_filters = { }; std::list< FilteringProgram > FilteringProgram::example_patterns = { + FilteringProgram("Source", "shaders/filters/source.glsl", "", { }), FilteringProgram("Color", "shaders/filters/color.glsl", "", { }), FilteringProgram("Color noise", "shaders/filters/RGBnoise.glsl", "", { }), FilteringProgram("Simplex Noise", "shaders/filters/3DSimplexNoise.glsl", "", { }), @@ -94,9 +95,8 @@ std::string FilteringProgram::getFilterCodeInputs() "float iTime; // shader playback time (in seconds)\n" "float iTimeDelta; // render time (in seconds)\n" "int iFrame; // shader playback frame\n" - "vec3 iChannelResolution[2]; // input channels resolution (in pixels)\n" + "vec3 iChannelResolution[1]; // input channels resolution (in pixels)\n" "sampler2D iChannel0; // input channel 0 (source).\n" - "sampler2D iChannel1; // input channel 1 (display loopback).\n" "vec4 iDate; // (year, month, day, time in seconds)\n" "vec4 iMouse; // simulate mouse input with sliders:"; return filterHeaderHelp;