int best_color_model = output_frame->get_color_model();
int use_opengl =
device->out_config->driver == PLAYBACK_X11_GL &&
- output_frame->get_opengl_state() == VFrame::SCREEN;
+ output_frame->get_opengl_state() != VFrame::RAM;
// OpenGL does YUV->RGB in the compositing step
if( use_opengl )
best_color_model = BC_RGB888;
+ int out_w = output_frame->get_w();
+ int out_h = output_frame->get_h();
if( refresh_frame &&
- (refresh_frame->get_w() != device->out_w ||
- refresh_frame->get_h() != device->out_h ||
+ (refresh_frame->get_w() != out_w ||
+ refresh_frame->get_h() != out_h ||
refresh_frame->get_color_model() != best_color_model ) ) {
// x11 direct render uses BC_BGR8888, use tranfer_from to remap
delete refresh_frame; refresh_frame = 0;
if( !refresh_frame ) {
refresh_frame =
- new VFrame(device->out_w, device->out_h, best_color_model);
+ new VFrame(out_w, out_h, best_color_model);
}
if( use_opengl ) {
get_canvas()->lock_window(" Canvas::output_refresh");
}
else
- refresh_frame->transfer_from(output_frame);
+ refresh_frame->copy_from(output_frame);
}
CanvasPopupResetCamera::CanvasPopupResetCamera(Canvas *canvas)
- : BC_MenuItem(_("Reset camera"))
+ : BC_MenuItem(_("Reset camera"), "F11", KEY_F11)
{
this->canvas = canvas;
}
CanvasPopupResetProjector::CanvasPopupResetProjector(Canvas *canvas)
- : BC_MenuItem(_("Reset projector"))
+ : BC_MenuItem(_("Reset projector"), "F12", KEY_F12)
{
this->canvas = canvas;
}