X-Git-Url: https://git.sesse.net/?p=movit;a=blobdiff_plain;f=effect_chain.cpp;h=85832db88541cfb90748dd55f8aca171a6621673;hp=f26da075f8e63aec551feb879b8fd0dd8c0c4943;hb=fdf859f872d87d0e2ae27e3ff34a8751145c2ae9;hpb=96a1cff51a8b7dc45ebe725e0d0685eecce31331 diff --git a/effect_chain.cpp b/effect_chain.cpp index f26da07..85832db 100644 --- a/effect_chain.cpp +++ b/effect_chain.cpp @@ -199,18 +199,21 @@ void EffectChain::render_to_screen(unsigned char *src) glActiveTexture(GL_TEXTURE0); glBindTexture(GL_TEXTURE_2D, SOURCE_IMAGE); - GLenum internal_format = GL_RGBA8; + GLenum format, internal_format; if (use_srgb_texture_format) { internal_format = GL_SRGB8; + } else { + internal_format = GL_RGBA8; } - if (input_format.pixel_format == FORMAT_RGB) { - glTexImage2D(GL_TEXTURE_2D, 0, internal_format, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, src); + format = GL_RGB; } else if (input_format.pixel_format == FORMAT_RGBA) { - glTexImage2D(GL_TEXTURE_2D, 0, internal_format, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, src); + format = GL_RGBA; } else { assert(false); } + + glTexImage2D(GL_TEXTURE_2D, 0, internal_format, width, height, 0, format, GL_UNSIGNED_BYTE, src); check_error(); glUniform1i(glGetUniformLocation(glsl_program_num, "input_tex"), 0);