diff options
Diffstat (limited to 'src/core/hle/service/vi/manager_display_service.h')
-rw-r--r-- | src/core/hle/service/vi/manager_display_service.h | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/src/core/hle/service/vi/manager_display_service.h b/src/core/hle/service/vi/manager_display_service.h index 4a3d53ff8..b1bdf7f41 100644 --- a/src/core/hle/service/vi/manager_display_service.h +++ b/src/core/hle/service/vi/manager_display_service.h @@ -4,22 +4,34 @@ #include "core/hle/service/cmif_types.h" #include "core/hle/service/service.h" +namespace Kernel { +class KProcess; +} + namespace Service::VI { +class Container; + class IManagerDisplayService final : public ServiceFramework<IManagerDisplayService> { public: - explicit IManagerDisplayService(Core::System& system_, - std::shared_ptr<Nvnflinger::Nvnflinger> surface_flinger); + explicit IManagerDisplayService(Core::System& system_, std::shared_ptr<Container> container); ~IManagerDisplayService() override; -private: - Result CreateManagedLayer(Out<u64> out_layer_id, u32 unknown, u64 display_id, + Result CreateSharedLayerSession(Kernel::KProcess* owner_process, u64* out_buffer_id, + u64* out_layer_handle, u64 display_id, bool enable_blending); + void DestroySharedLayerSession(Kernel::KProcess* owner_process); + + Result SetLayerBlending(bool enabled, u64 layer_id); + +public: + Result CreateManagedLayer(Out<u64> out_layer_id, u32 flags, u64 display_id, AppletResourceUserId aruid); + Result DestroyManagedLayer(u64 layer_id); Result AddToLayerStack(u32 stack_id, u64 layer_id); Result SetLayerVisibility(bool visible, u64 layer_id); private: - const std::shared_ptr<Nvnflinger::Nvnflinger> m_surface_flinger; + const std::shared_ptr<Container> m_container; }; } // namespace Service::VI |