- }
-
- y_offset /= get_output()->get_texture_h();
-
- shader_stack[2] = tail_frag;
-
- if(config.mode != DEINTERLACE_NONE)
- {
- unsigned int frag = VFrame::make_shader(0,
- shader_stack[0],
- shader_stack[1],
- shader_stack[2],
- 0);
- if(frag)
- {
- glUseProgram(frag);
- glUniform1i(glGetUniformLocation(frag, "tex"), 0);
- glUniform1f(glGetUniformLocation(frag, "line_h"), line_h);
- glUniform1f(glGetUniformLocation(frag, "double_line_h"), double_line_h);
- glUniform1f(glGetUniformLocation(frag, "y_offset"), y_offset);
+ }
+ if( shader_frag )
+ shader_stack[current_shader++] = shader_frag;
+
+ shader_stack[current_shader++] = tail_frag;
+ shader_stack[current_shader] = 0;
+ unsigned int shader = VFrame::make_shader(shader_stack);
+ if( shader > 0 ) {
+ y_offset /= get_output()->get_texture_h();
+ glUseProgram(shader);
+ glUniform1i(glGetUniformLocation(shader, "tex"), 0);
+ glUniform1f(glGetUniformLocation(shader, "line_h"), line_h);
+ glUniform1f(glGetUniformLocation(shader, "double_line_h"), double_line_h);
+ glUniform1f(glGetUniformLocation(shader, "y_offset"), y_offset);