summaryrefslogtreecommitdiffstats
path: root/src/yuzu/bootmanager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/yuzu/bootmanager.cpp')
-rw-r--r--src/yuzu/bootmanager.cpp17
1 files changed, 12 insertions, 5 deletions
diff --git a/src/yuzu/bootmanager.cpp b/src/yuzu/bootmanager.cpp
index 46ab0603d..fd0a130a3 100644
--- a/src/yuzu/bootmanager.cpp
+++ b/src/yuzu/bootmanager.cpp
@@ -303,6 +303,7 @@ GRenderWindow::GRenderWindow(GMainWindow* parent, EmuThread* emu_thread_,
connect(this, &GRenderWindow::ExecuteProgramSignal, parent, &GMainWindow::OnExecuteProgram,
Qt::QueuedConnection);
connect(this, &GRenderWindow::ExitSignal, parent, &GMainWindow::OnExit, Qt::QueuedConnection);
+ connect(this, &GRenderWindow::TasPlaybackStateChanged, parent, &GMainWindow::OnTasStateChanged);
}
void GRenderWindow::ExecuteProgram(std::size_t program_index) {
@@ -319,10 +320,18 @@ GRenderWindow::~GRenderWindow() {
void GRenderWindow::OnFrameDisplayed() {
input_subsystem->GetTas()->UpdateThread();
+ const TasInput::TasState new_tas_state = std::get<0>(input_subsystem->GetTas()->GetStatus());
+
if (!first_frame) {
+ last_tas_state = new_tas_state;
first_frame = true;
emit FirstFrameDisplayed();
}
+
+ if (new_tas_state != last_tas_state) {
+ last_tas_state = new_tas_state;
+ emit TasPlaybackStateChanged();
+ }
}
bool GRenderWindow::IsShown() const {
@@ -628,11 +637,9 @@ void GRenderWindow::ReleaseRenderTarget() {
main_context.reset();
}
-void GRenderWindow::CaptureScreenshot(u32 res_scale, const QString& screenshot_path) {
- VideoCore::RendererBase& renderer = system.Renderer();
- if (res_scale == 0) {
- res_scale = VideoCore::GetResolutionScaleFactor(renderer);
- }
+void GRenderWindow::CaptureScreenshot(const QString& screenshot_path) {
+ auto& renderer = system.Renderer();
+ const f32 res_scale = Settings::values.resolution_info.up_factor;
const Layout::FramebufferLayout layout{Layout::FrameLayoutFromResolutionScale(res_scale)};
screenshot_image = QImage(QSize(layout.width, layout.height), QImage::Format_RGB32);