X-Git-Url: https://git.sesse.net/?p=movit;a=blobdiff_plain;f=fft_input.cpp;h=f9339df24779fab2cb37fb00baba51e88f613d4b;hp=ba539b6b54e1f18fe0da2a629b1b1d00a7a8fe65;hb=refs%2Fheads%2F1.3.x-release;hpb=3ccf5fb197c9a72545affc0b7286349d5603b72e diff --git a/fft_input.cpp b/fft_input.cpp index ba539b6..f9339df 100644 --- a/fft_input.cpp +++ b/fft_input.cpp @@ -1,6 +1,6 @@ #include #include -#include +#include #include #include "effect_util.h" @@ -23,6 +23,7 @@ FFTInput::FFTInput(unsigned width, unsigned height) { register_int("fft_width", &fft_width); register_int("fft_height", &fft_height); + register_uniform_sampler2d("tex", &uniform_tex); } FFTInput::~FFTInput() @@ -66,8 +67,8 @@ void FFTInput::set_gl_state(GLuint glsl_program_num, const string& prefix, unsig // Convert to fp16. fp16_int_t *kernel = new fp16_int_t[fft_width * fft_height * 2]; for (int i = 0; i < fft_width * fft_height; ++i) { - kernel[i * 2 + 0] = fp64_to_fp16(out[i][0]); - kernel[i * 2 + 1] = fp64_to_fp16(out[i][1]); + kernel[i * 2 + 0] = fp32_to_fp16(out[i][0]); + kernel[i * 2 + 1] = fp32_to_fp16(out[i][1]); } // (Re-)upload the texture. @@ -98,13 +99,14 @@ void FFTInput::set_gl_state(GLuint glsl_program_num, const string& prefix, unsig } // Bind it to a sampler. - set_uniform_int(glsl_program_num, prefix, "tex", *sampler_num); + uniform_tex = *sampler_num; ++*sampler_num; } string FFTInput::output_fragment_shader() { - return read_file("flat_input.frag"); + return string("#define FIXUP_SWAP_RB 0\n#define FIXUP_RED_TO_GRAYSCALE 0\n") + + read_file("flat_input.frag"); } void FFTInput::invalidate_pixel_data()