X-Git-Url: https://git.sesse.net/?p=movit;a=blobdiff_plain;f=fft_pass_effect.cpp;h=51bde35aec5d31ea313694b892668ab586b38026;hp=b3c3cf6a32c553087ac8fb52c923347b5c8010ce;hb=5dfd8dfbd444210f9c9e3a0baf5c82b49e76e7ff;hpb=85f9719bf3519b1f1942738d11601584f5d38725 diff --git a/fft_pass_effect.cpp b/fft_pass_effect.cpp index b3c3cf6..51bde35 100644 --- a/fft_pass_effect.cpp +++ b/fft_pass_effect.cpp @@ -1,11 +1,14 @@ #include +#include -#include "fft_pass_effect.h" #include "effect_util.h" +#include "fft_pass_effect.h" #include "util.h" using namespace std; +namespace movit { + FFTPassEffect::FFTPassEffect() : input_width(1280), input_height(720), @@ -129,13 +132,13 @@ void FFTPassEffect::set_gl_state(GLuint glsl_program_num, const string &prefix, glActiveTexture(GL_TEXTURE0 + *sampler_num); check_error(); - glBindTexture(GL_TEXTURE_1D, tex); + glBindTexture(GL_TEXTURE_2D, tex); check_error(); - glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); check_error(); - glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); check_error(); - glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_WRAP_S, GL_REPEAT); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); check_error(); // Supposedly FFTs are very sensitive to inaccuracies in the twiddle factors, @@ -144,7 +147,7 @@ void FFTPassEffect::set_gl_state(GLuint glsl_program_num, const string &prefix, // small sizes, all components are exact anyway, so we can cheat there // (although noting that the source coordinates become somewhat less // accurate then, too). - glTexImage1D(GL_TEXTURE_1D, 0, (subfft_size <= 4) ? GL_RGBA16F : GL_RGBA32F, fft_size, 0, GL_RGBA, GL_FLOAT, tmp); + glTexImage2D(GL_TEXTURE_2D, 0, (subfft_size <= 4) ? GL_RGBA16F : GL_RGBA32F, fft_size, 1, 0, GL_RGBA, GL_FLOAT, tmp); check_error(); delete[] tmp; @@ -155,3 +158,5 @@ void FFTPassEffect::set_gl_state(GLuint glsl_program_num, const string &prefix, assert(input_size % fft_size == 0); set_uniform_float(glsl_program_num, prefix, "num_repeats", input_size / fft_size); } + +} // namespace movit