summaryrefslogtreecommitdiffstats
path: root/src/core/hle/service/vi/display/vi_display.h
diff options
context:
space:
mode:
authorMorph <39850852+Morph1984@users.noreply.github.com>2022-09-26 03:20:36 +0200
committerMorph <39850852+Morph1984@users.noreply.github.com>2022-09-26 03:33:36 +0200
commit41e855bd427e07ade6b9292e12bbe5a7c4e76a69 (patch)
treea270ca94eabc45a52af899e70c1d72e8ab5b18be /src/core/hle/service/vi/display/vi_display.h
parentservice: vi: Move VI results into its own file (diff)
downloadyuzu-41e855bd427e07ade6b9292e12bbe5a7c4e76a69.tar
yuzu-41e855bd427e07ade6b9292e12bbe5a7c4e76a69.tar.gz
yuzu-41e855bd427e07ade6b9292e12bbe5a7c4e76a69.tar.bz2
yuzu-41e855bd427e07ade6b9292e12bbe5a7c4e76a69.tar.lz
yuzu-41e855bd427e07ade6b9292e12bbe5a7c4e76a69.tar.xz
yuzu-41e855bd427e07ade6b9292e12bbe5a7c4e76a69.tar.zst
yuzu-41e855bd427e07ade6b9292e12bbe5a7c4e76a69.zip
Diffstat (limited to 'src/core/hle/service/vi/display/vi_display.h')
-rw-r--r--src/core/hle/service/vi/display/vi_display.h14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/core/hle/service/vi/display/vi_display.h b/src/core/hle/service/vi/display/vi_display.h
index 3838bb599..8dbb0ef80 100644
--- a/src/core/hle/service/vi/display/vi_display.h
+++ b/src/core/hle/service/vi/display/vi_display.h
@@ -9,6 +9,7 @@
#include "common/common_funcs.h"
#include "common/common_types.h"
+#include "core/hle/result.h"
namespace Kernel {
class KEvent;
@@ -73,8 +74,16 @@ public:
return layers.size();
}
- /// Gets the readable vsync event.
- Kernel::KReadableEvent& GetVSyncEvent();
+ /**
+ * Gets the internal vsync event.
+ *
+ * @returns The internal Vsync event if it has not yet been retrieved,
+ * VI::ResultPermissionDenied otherwise.
+ */
+ [[nodiscard]] ResultVal<Kernel::KReadableEvent*> GetVSyncEvent();
+
+ /// Gets the internal vsync event.
+ Kernel::KReadableEvent* GetVSyncEventUnchecked();
/// Signals the internal vsync event.
void SignalVSyncEvent();
@@ -118,6 +127,7 @@ private:
std::vector<std::unique_ptr<Layer>> layers;
Kernel::KEvent* vsync_event{};
+ bool got_vsync_event{false};
};
} // namespace Service::VI