aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.HLE/HOS/Services/Vi/RootService/IApplicationDisplayService.cs
diff options
context:
space:
mode:
authorCaian Benedicto <caianbene@gmail.com>2021-01-11 15:27:55 -0300
committerGitHub <noreply@github.com>2021-01-11 19:27:55 +0100
commite57b14042910eac2f876549b4a1e6fd5ba027368 (patch)
treedcfeabf03776310bb7095076d1a1e9300b069bfc /Ryujinx.HLE/HOS/Services/Vi/RootService/IApplicationDisplayService.cs
parentb81f19613f306267ee0f448d2f23caef74afef79 (diff)
Add support for inline software keyboard (#1868)
* Add background mode configuration to SoftwareKeyboardApplet * Add placeholder text generator for Software Keyboard in background mode * Add stub for GetIndirectLayerImageMap * Fix default state of DecidedCancel response * Add GUI text input to Software Keyboard in background mode * Fix graphical glitch when Inline Software Keyboard appears * Improve readability of InlineResponses class * Improve code styling and fix compiler warnings * Replace ServiceDisplay log class by ServiceVi * Replace static readonly by const * Add proper finalization to the keyboard applet in inline mode * Rename constants to start with uppercase * Fix inline keyboard not working with some games * Improve code readability * Fix code styling
Diffstat (limited to 'Ryujinx.HLE/HOS/Services/Vi/RootService/IApplicationDisplayService.cs')
-rw-r--r--Ryujinx.HLE/HOS/Services/Vi/RootService/IApplicationDisplayService.cs19
1 files changed, 19 insertions, 0 deletions
diff --git a/Ryujinx.HLE/HOS/Services/Vi/RootService/IApplicationDisplayService.cs b/Ryujinx.HLE/HOS/Services/Vi/RootService/IApplicationDisplayService.cs
index a4b9f358..b521ae92 100644
--- a/Ryujinx.HLE/HOS/Services/Vi/RootService/IApplicationDisplayService.cs
+++ b/Ryujinx.HLE/HOS/Services/Vi/RootService/IApplicationDisplayService.cs
@@ -1,4 +1,5 @@
using Ryujinx.Common;
+using Ryujinx.Common.Logging;
using Ryujinx.Cpu;
using Ryujinx.HLE.HOS.Ipc;
using Ryujinx.HLE.HOS.Kernel.Common;
@@ -238,6 +239,24 @@ namespace Ryujinx.HLE.HOS.Services.Vi.RootService
return null;
}
+ [Command(2450)]
+ // GetIndirectLayerImageMap(s64 width, s64 height, u64 handle, nn::applet::AppletResourceUserId, pid) -> (s64, s64, buffer<bytes, 0x46>)
+ public ResultCode GetIndirectLayerImageMap(ServiceCtx context)
+ {
+ // The size of the layer buffer should be an aligned multiple of width * height
+ // because it was created using GetIndirectLayerImageRequiredMemoryInfo as a guide.
+
+ long layerBuffPosition = context.Request.ReceiveBuff[0].Position;
+ long layerBuffSize = context.Request.ReceiveBuff[0].Size;
+
+ // Fill the layer with zeros.
+ context.Memory.Fill((ulong)layerBuffPosition, (ulong)layerBuffSize, 0x00);
+
+ Logger.Stub?.PrintStub(LogClass.ServiceVi);
+
+ return ResultCode.Success;
+ }
+
[Command(2460)]
// GetIndirectLayerImageRequiredMemoryInfo(u64 width, u64 height) -> (u64 size, u64 alignment)
public ResultCode GetIndirectLayerImageRequiredMemoryInfo(ServiceCtx context)