vi.h 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. // Copyright 2018 yuzu emulator team
  2. // Licensed under GPLv2 or any later version
  3. // Refer to the license.txt file included.
  4. #pragma once
  5. #include <memory>
  6. #include "common/common_types.h"
  7. namespace Kernel {
  8. class HLERequestContext;
  9. }
  10. namespace Service::NVFlinger {
  11. class NVFlinger;
  12. }
  13. namespace Service::SM {
  14. class ServiceManager;
  15. }
  16. namespace Service::VI {
  17. enum class DisplayResolution : u32 {
  18. DockedWidth = 1920,
  19. DockedHeight = 1080,
  20. UndockedWidth = 1280,
  21. UndockedHeight = 720,
  22. };
  23. /// Permission level for a particular VI service instance
  24. enum class Permission {
  25. User,
  26. System,
  27. Manager,
  28. };
  29. /// A policy type that may be requested via GetDisplayService and
  30. /// GetDisplayServiceWithProxyNameExchange
  31. enum class Policy {
  32. User,
  33. Compositor,
  34. };
  35. namespace detail {
  36. void GetDisplayServiceImpl(Kernel::HLERequestContext& ctx, NVFlinger::NVFlinger& nv_flinger,
  37. Permission permission);
  38. } // namespace detail
  39. /// Registers all VI services with the specified service manager.
  40. void InstallInterfaces(SM::ServiceManager& service_manager, NVFlinger::NVFlinger& nv_flinger);
  41. } // namespace Service::VI