X-Git-Url: https://git.sesse.net/?p=movit;a=blobdiff_plain;f=effect_chain.cpp;h=0985ee4ef185432a959472b149daf29dc8249d2f;hp=899c6a3f4ca9335e518cd3939a452cafe6955801;hb=a0ced951a3ad27223d71caae71eeeb5c62c6ce77;hpb=b5e3174594efe9a920621a68d3b28f5e44676d03 diff --git a/effect_chain.cpp b/effect_chain.cpp index 899c6a3..0985ee4 100644 --- a/effect_chain.cpp +++ b/effect_chain.cpp @@ -221,9 +221,14 @@ void EffectChain::finalize() glGenTextures(num_textures, temp_textures); unsigned char *empty = new unsigned char[width * height * 4]; + memset(empty, 0, width * height * 4); for (unsigned i = 0; i < num_textures; ++i) { glBindTexture(GL_TEXTURE_2D, temp_textures[i]); check_error(); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); + check_error(); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); + check_error(); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA16F_ARB, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, empty); check_error(); } @@ -334,7 +339,7 @@ void EffectChain::render_to_screen(unsigned char *src) if (phases[phase].input_needs_mipmaps) { glGenerateMipmap(GL_TEXTURE_2D); check_error(); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_NEAREST); check_error(); } else { glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); @@ -394,5 +399,12 @@ void EffectChain::render_to_screen(unsigned char *src) glEnd(); check_error(); + + // HACK + glActiveTexture(GL_TEXTURE0); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_BASE_LEVEL, 0); + check_error(); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, 1000); + check_error(); } }