Change Present to finish only after swap

This commit is contained in:
James Rowe 2019-09-18 10:54:39 -06:00
parent 6fff8e3921
commit ac90cd0378
6 changed files with 20 additions and 1 deletions

View file

@ -86,7 +86,7 @@ GRenderWindow::GRenderWindow(QWidget* parent, EmuThread* emu_thread)
setWindowTitle(QStringLiteral("Citra %1 | %2-%3")
.arg(Common::g_build_name, Common::g_scm_branch, Common::g_scm_desc));
setAttribute(Qt::WA_AcceptTouchEvents);
connect(this, &QOpenGLWidget::frameSwapped, this, &GRenderWindow::OnFrameSwapped);
InputCommon::Init();
}
@ -104,6 +104,10 @@ void GRenderWindow::DoneCurrent() {
void GRenderWindow::PollEvents() {}
void OnFrameSwapped() {
VideoCore::g_renderer->PresentComplete();
}
// On Qt 5.0+, this correctly gets the size of the framebuffer (pixels).
//
// Older versions get the window size (density independent pixels),
@ -294,6 +298,10 @@ void GRenderWindow::paintGL() {
update();
}
void GRenderWindow::OnFrameSwapped() {
VideoCore::g_renderer->PresentComplete();
}
void GRenderWindow::showEvent(QShowEvent* event) {
QWidget::showEvent(event);
}