From f56ab959b74bde35a863b4e601273e5efe8ca1a4 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Thu, 16 Jun 2016 17:04:30 +0200 Subject: [PATCH] Move fragment_program_blur program to separate file --- cores/libretro-ffmpeg/fft/fft.cpp | 32 ++----------------- .../fft_fragment_program_blur.glsl.frag.h | 28 ++++++++++++++++ .../fft_fragment_program_resolve.glsl.frag.h | 2 +- 3 files changed, 32 insertions(+), 30 deletions(-) create mode 100644 cores/libretro-ffmpeg/fft/gl_shaders/fft_fragment_program_blur.glsl.frag.h diff --git a/cores/libretro-ffmpeg/fft/fft.cpp b/cores/libretro-ffmpeg/fft/fft.cpp index ee849b2119..75ee01c322 100644 --- a/cores/libretro-ffmpeg/fft/fft.cpp +++ b/cores/libretro-ffmpeg/fft/fft.cpp @@ -96,33 +96,7 @@ typedef struct GLFFT #include "gl_shaders/fft_fragment_program_resolve.glsl.frag.h" #include "gl_shaders/fft_fragment_program_real.glsl.frag.h" #include "gl_shaders/fft_fragment_program_complex.glsl.frag.h" - -static const char fragment_program_blur[] = - "#version 300 es\n" - "precision mediump float;\n" - "precision highp int;\n" - "precision highp usampler2D;\n" - "precision highp isampler2D;\n" - "in vec2 vTex;\n" - "out vec4 FragColor;\n" - "uniform sampler2D sHeight;\n" - "void main() {\n" - " float k = 0.0;\n" - " float t;\n" - " vec4 res = vec4(0.0);\n" - " #define kernel(x, y) t = exp(-0.35 * float((x) * (x) + (y) * (y))); k += t; res += t * textureLodOffset(sHeight, vTex, 0.0, ivec2(x, y))\n" - " kernel(-1, -2);\n" - " kernel(-1, -1);\n" - " kernel(-1, 0);\n" - " kernel( 0, -2);\n" - " kernel( 0, -1);\n" - " kernel( 0, 0);\n" - " kernel( 1, -2);\n" - " kernel( 1, -1);\n" - " kernel( 1, 0);\n" - " FragColor = res / k;\n" - "}"; - +#include "gl_shaders/fft_fragment_program_blur.glsl.frag.h" static GLuint fft_compile_shader(glfft_t *fft, GLenum type, const char *source) { @@ -456,8 +430,8 @@ static void fft_init(glfft_t *fft) fft->prog_real = fft_compile_program(fft, fft_vertex_program, fft_fragment_program_real); fft->prog_complex = fft_compile_program(fft, fft_vertex_program, fft_fragment_program_complex); - fft->prog_resolve = fft_compile_program(fft, fft_vertex_program, fragment_program_resolve); - fft->prog_blur = fft_compile_program(fft, fft_vertex_program, fragment_program_blur); + fft->prog_resolve = fft_compile_program(fft, fft_vertex_program, fft_fragment_program_resolve); + fft->prog_blur = fft_compile_program(fft, fft_vertex_program, fft_fragment_program_blur); GL_CHECK_ERROR(); glUseProgram(fft->prog_real); diff --git a/cores/libretro-ffmpeg/fft/gl_shaders/fft_fragment_program_blur.glsl.frag.h b/cores/libretro-ffmpeg/fft/gl_shaders/fft_fragment_program_blur.glsl.frag.h new file mode 100644 index 0000000000..6cb153f41e --- /dev/null +++ b/cores/libretro-ffmpeg/fft/gl_shaders/fft_fragment_program_blur.glsl.frag.h @@ -0,0 +1,28 @@ +#include "shaders_common.h" + +static const char *fft_fragment_program_blur = GLSL_300( + precision mediump float; + precision highp int; + precision highp usampler2D; + precision highp isampler2D; + in vec2 vTex; + out vec4 FragColor; + uniform sampler2D sHeight; + + void main() { + float k = 0.0; + float t; + vec4 res = vec4(0.0); + \n#define kernel(x, y) t = exp(-0.35 * float((x) * (x) + (y) * (y))); k += t; res += t * textureLodOffset(sHeight, vTex, 0.0, ivec2(x, y))\n + kernel(-1, -2); + kernel(-1, -1); + kernel(-1, 0); + kernel( 0, -2); + kernel( 0, -1); + kernel( 0, 0); + kernel( 1, -2); + kernel( 1, -1); + kernel( 1, 0); + FragColor = res / k; + } +); diff --git a/cores/libretro-ffmpeg/fft/gl_shaders/fft_fragment_program_resolve.glsl.frag.h b/cores/libretro-ffmpeg/fft/gl_shaders/fft_fragment_program_resolve.glsl.frag.h index c0d591046b..1c26428b78 100644 --- a/cores/libretro-ffmpeg/fft/gl_shaders/fft_fragment_program_resolve.glsl.frag.h +++ b/cores/libretro-ffmpeg/fft/gl_shaders/fft_fragment_program_resolve.glsl.frag.h @@ -1,6 +1,6 @@ #include "shaders_common.h" -static const char *fragment_program_resolve = GLSL_300( +static const char *fft_fragment_program_resolve = GLSL_300( precision mediump float; precision highp int; precision highp usampler2D;