summaryrefslogtreecommitdiffstats
path: root/src/core/hle/service/am/applet_oe.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/hle/service/am/applet_oe.cpp')
-rw-r--r--src/core/hle/service/am/applet_oe.cpp14
1 files changed, 14 insertions, 0 deletions
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::NVFlinger> nvflinger;
};