|
|
@@ -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;
|
|
|
};
|
|
|
|