X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=glwidget.cpp;h=cccfa3af631b6d869255cf8f3b06addc2019c1dc;hb=e284d1c7a2e18ee7e4aea082c4a57a3504a0f5e8;hp=73d8b7fd3bcb72a19e6cd10313f3482eb6a5f85e;hpb=14dc6f7ef9dd76cba75ffe7499d9a81d66c7b152;p=nageru diff --git a/glwidget.cpp b/glwidget.cpp index 73d8b7f..cccfa3a 100644 --- a/glwidget.cpp +++ b/glwidget.cpp @@ -90,6 +90,8 @@ void GLWidget::initializeGL() void GLWidget::resizeGL(int width, int height) { + current_width = width; + current_height = height; glViewport(0, 0, width, height); } @@ -111,7 +113,7 @@ void GLWidget::paintGL() check_error(); glDisable(GL_FRAMEBUFFER_SRGB); check_error(); - frame.chain->render_to_screen(); + frame.chain->render_to_fbo(0, current_width, current_height); check_error(); if (resource_pool == nullptr) { @@ -133,7 +135,9 @@ void GLWidget::show_context_menu(const QPoint &pos) } if (output >= Mixer::OUTPUT_INPUT0) { int signal_num = global_mixer->get_channel_signal(output); - show_preview_context_menu(signal_num, pos); + if (signal_num != -1) { + show_preview_context_menu(signal_num, pos); + } } } @@ -193,15 +197,11 @@ void GLWidget::show_preview_context_menu(unsigned signal_num, const QPoint &pos) QMenu interpretation_submenu; QActionGroup interpretation_group(&interpretation_submenu); - bool current_ycbcr_coefficients_auto, current_full_range; - YCbCrLumaCoefficients current_ycbcr_coefficients; - global_mixer->get_input_ycbcr_interpretation( - current_card, ¤t_ycbcr_coefficients_auto, - ¤t_ycbcr_coefficients, ¤t_full_range); + YCbCrInterpretation current_interpretation = global_mixer->get_input_ycbcr_interpretation(current_card); { QAction *action = new QAction("Auto", &interpretation_group); action->setCheckable(true); - if (current_ycbcr_coefficients_auto) { + if (current_interpretation.ycbcr_coefficients_auto) { action->setChecked(true); } action->setData(QList{"interpretation", true, YCBCR_REC_709, false}); @@ -220,9 +220,9 @@ void GLWidget::show_preview_context_menu(unsigned signal_num, const QPoint &pos) } QAction *action = new QAction(QString::fromStdString(description), &interpretation_group); action->setCheckable(true); - if (!current_ycbcr_coefficients_auto && - ycbcr_coefficients == current_ycbcr_coefficients && - full_range == current_full_range) { + if (!current_interpretation.ycbcr_coefficients_auto && + ycbcr_coefficients == current_interpretation.ycbcr_coefficients && + full_range == current_interpretation.full_range) { action->setChecked(true); } action->setData(QList{"interpretation", false, ycbcr_coefficients, full_range}); @@ -357,10 +357,11 @@ void GLWidget::show_preview_context_menu(unsigned signal_num, const QPoint &pos) unsigned card_index = selected[1].toUInt(nullptr); global_mixer->set_signal_mapping(signal_num, card_index); } else if (selected[0].toString() == "interpretation") { - bool ycbcr_coefficients_auto = selected[1].toBool(); - YCbCrLumaCoefficients ycbcr_coefficients = YCbCrLumaCoefficients(selected[2].toUInt(nullptr)); - bool full_range = selected[3].toBool(); - global_mixer->set_input_ycbcr_interpretation(current_card, ycbcr_coefficients_auto, ycbcr_coefficients, full_range); + YCbCrInterpretation interpretation; + interpretation.ycbcr_coefficients_auto = selected[1].toBool(); + interpretation.ycbcr_coefficients = YCbCrLumaCoefficients(selected[2].toUInt(nullptr)); + interpretation.full_range = selected[3].toBool(); + global_mixer->set_input_ycbcr_interpretation(current_card, interpretation); } else { assert(false); }