From 10c67bf39504aae36b06d4abe8055aaf6feeb2ad Mon Sep 17 00:00:00 2001 From: Subv Date: Mon, 22 Jan 2018 13:50:22 -0500 Subject: AppletOE: Stubbed CreateManagedDisplayLayer to create a new layer in the Default display. This function is used by libnx to obtain a new layer. --- src/core/hle/service/am/applet_oe.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/core/hle/service/am/applet_oe.cpp b/src/core/hle/service/am/applet_oe.cpp index f593840b3..7d16b45f3 100644 --- a/src/core/hle/service/am/applet_oe.cpp +++ b/src/core/hle/service/am/applet_oe.cpp @@ -67,6 +67,7 @@ public: {14, &ISelfController::SetRestartMessageEnabled, "SetRestartMessageEnabled"}, {16, &ISelfController::SetOutOfFocusSuspendingEnabled, "SetOutOfFocusSuspendingEnabled"}, + {40, &ISelfController::CreateManagedDisplayLayer, "CreateManagedDisplayLayer"}, }; RegisterHandlers(functions); } @@ -147,6 +148,19 @@ private: LOG_WARNING(Service, "(STUBBED) called"); } + void CreateManagedDisplayLayer(Kernel::HLERequestContext& ctx) { + // TODO(Subv): Find out how AM determines the display to use, for now just create the layer + // in the Default display. + u64 display_id = nvflinger->OpenDisplay("Default"); + u64 layer_id = nvflinger->CreateLayer(display_id); + + IPC::RequestBuilder rb{ctx, 4}; + rb.Push(RESULT_SUCCESS); + rb.Push(layer_id); + + LOG_WARNING(Service, "(STUBBED) called"); + } + std::shared_ptr nvflinger; }; -- cgit v1.2.3