X-Git-Url: https://git.sesse.net/?p=movit;a=blobdiff_plain;f=fft_input.cpp;h=f9339df24779fab2cb37fb00baba51e88f613d4b;hp=76e77d6b8409c79e7b38f6fcb686b7e322f2c73b;hb=refs%2Fheads%2F1.3.x-release;hpb=9e219b96e914b2e5709ba3c3345afdc3cf13a78d diff --git a/fft_input.cpp b/fft_input.cpp index 76e77d6..f9339df 100644 --- a/fft_input.cpp +++ b/fft_input.cpp @@ -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()