window->enable_opengl();
// Composite texture to screen and swap buffer
case VFrame::TEXTURE:
+ if( !flip_y ) {
+ int fh1 = command->frame->get_h()-1;
+ float in_y1 = fh1 - command->in_y1;
+ float in_y2 = fh1 - command->in_y2;
+ command->in_y1 = in_y2;
+ command->in_y2 = in_y1;
+ }
draw_output(command, flip_y);
break;
default:
BC_GL_YUV_TO_RGB(shader);
}
- if(BC_CModels::components(color_model) == 4)
- {
- glEnable(GL_BLEND);
- glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
- }
+// if(BC_CModels::components(color_model) == 4)
+// {
+// glEnable(GL_BLEND);
+// glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+// }
command->frame->draw_texture(
command->in_x1, command->in_y1, command->in_x2, command->in_y2,
glColor4f(1, 1, 1, 1);
glDisable(GL_BLEND);
- if(command->frame) {
-// Render to PBuffer
- command->frame->enable_opengl();
- command->frame->set_opengl_state(VFrame::SCREEN);
- canvas_w = command->frame->get_w();
- canvas_h = command->frame->get_h();
- }
- else {
-// Render to canvas
- canvas_w = window->get_w();
- canvas_h = window->get_h();
- }
-
//printf("Playback3D::overlay_sync 1 %d\n", command->input->get_opengl_state());
switch( command->input->get_opengl_state() ) {
case VFrame::SCREEN:
command->input->enable_opengl();
command->input->screen_to_texture();
- if(command->frame)
- command->frame->enable_opengl();
- else
- window->enable_opengl();
break;
default:
printf("Playback3D::overlay_sync unknown state\n");
break;
}
+ if(command->frame) {
+// Render to PBuffer
+ command->frame->enable_opengl();
+ command->frame->set_opengl_state(VFrame::SCREEN);
+ canvas_w = command->frame->get_w();
+ canvas_h = command->frame->get_h();
+ }
+ else {
+// Render to canvas
+ window->enable_opengl();
+ canvas_w = window->get_w();
+ canvas_h = window->get_h();
+ }
+
const char *shader_stack[16];
memset(shader_stack,0, sizeof(shader_stack));