diff --git a/cores/libretro-ffmpeg/fft/fft.cpp b/cores/libretro-ffmpeg/fft/fft.cpp index a66c2a2b5a..1c6bdeefb6 100644 --- a/cores/libretro-ffmpeg/fft/fft.cpp +++ b/cores/libretro-ffmpeg/fft/fft.cpp @@ -150,16 +150,7 @@ static const char fragment_program_heightmap[] = " FragColor = vec4(color, 1.0);\n" "}"; -static const char vertex_program[] = - "#version 300 es\n" - "layout(location = 0) in vec2 aVertex;\n" - "layout(location = 1) in vec2 aTexCoord;\n" - "uniform vec4 uOffsetScale;\n" - "out vec2 vTex;\n" - "void main() {\n" - " vTex = uOffsetScale.xy + aTexCoord * uOffsetScale.zw;\n" - " gl_Position = vec4(aVertex, 0.0, 1.0);\n" - "}"; +#include "gl_shaders/fft_vertex_program.glsl.vert.h" static const char fragment_program_resolve[] = "#version 300 es\n" @@ -614,10 +605,10 @@ static void fft_init(glfft_t *fft) GLushort *window; static const GLfloat unity[] = { 0.0f, 0.0f, 1.0f, 1.0f }; - fft->prog_real = fft_compile_program(fft, vertex_program, fragment_program_real); - fft->prog_complex = fft_compile_program(fft, vertex_program, fragment_program_complex); - fft->prog_resolve = fft_compile_program(fft, vertex_program, fragment_program_resolve); - fft->prog_blur = fft_compile_program(fft, vertex_program, fragment_program_blur); + fft->prog_real = fft_compile_program(fft, fft_vertex_program, fragment_program_real); + fft->prog_complex = fft_compile_program(fft, fft_vertex_program, 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); GL_CHECK_ERROR(); glUseProgram(fft->prog_real); diff --git a/cores/libretro-ffmpeg/fft/gl_shaders/fft_vertex_program.glsl.vert.h b/cores/libretro-ffmpeg/fft/gl_shaders/fft_vertex_program.glsl.vert.h new file mode 100644 index 0000000000..4f56c6667f --- /dev/null +++ b/cores/libretro-ffmpeg/fft/gl_shaders/fft_vertex_program.glsl.vert.h @@ -0,0 +1,12 @@ +#include "shaders_common.h" + +static const char *fft_vertex_program = GLSL_300( + layout(location = 0) in vec2 aVertex; + layout(location = 1) in vec2 aTexCoord; + uniform vec4 uOffsetScale; + out vec2 vTex; + void main() { + vTex = uOffsetScale.xy + aTexCoord * uOffsetScale.zw; + gl_Position = vec4(aVertex, 0.0, 1.0); + } +); diff --git a/cores/libretro-ffmpeg/fft/gl_shaders/shaders_common.h b/cores/libretro-ffmpeg/fft/gl_shaders/shaders_common.h new file mode 100644 index 0000000000..d3d27f0e6a --- /dev/null +++ b/cores/libretro-ffmpeg/fft/gl_shaders/shaders_common.h @@ -0,0 +1,16 @@ +#ifndef _SHADERS_COMMON +#define _SHADERS_COMMON + +#if defined(HAVE_OPENGLES) +#define CG(src) "" #src +#define GLSL(src) "precision mediump float;\n" #src +#define GLSL_330(src) "#version 330 es\nprecision mediump float;\n" #src +#define GLSL_300(src) "#version 300 es\nprecision mediump float;\n" #src +#else +#define CG(src) "" #src +#define GLSL(src) "" #src +#define GLSL_300(src) "#version 300 es\n" #src +#define GLSL_330(src) "#version 330 core\n" #src +#endif + +#endif