summaryrefslogtreecommitdiffstats
path: root/src/core/hle/service/vi/manager_display_service.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/hle/service/vi/manager_display_service.h')
-rw-r--r--src/core/hle/service/vi/manager_display_service.h22
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