diff options
| author | gdkchan <gab.dark.100@gmail.com> | 2019-02-18 21:12:53 -0300 |
|---|---|---|
| committer | jduncanator <1518948+jduncanator@users.noreply.github.com> | 2019-02-19 11:12:53 +1100 |
| commit | 6335753e382eec1cf9037545851f1de2459b94cc (patch) | |
| tree | 0c1ea5df5cf30ff3f88e1c629f6d602f8e60b61a /Ryujinx.HLE/HOS/Services/Vi/IApplicationDisplayService.cs | |
| parent | 932224f05112180aa5f52162cbbc3a17c339075f (diff) | |
Implement ConvertScalingMode properly (#596)
* Implement ConvertScalingMode properly
* Fix up the naming
* Only values 2 and 4 are allowed
* Return a nullable enum from ConvetScalingMode
* Fix typo on method name
* Use convertedScalingMode
Diffstat (limited to 'Ryujinx.HLE/HOS/Services/Vi/IApplicationDisplayService.cs')
| -rw-r--r-- | Ryujinx.HLE/HOS/Services/Vi/IApplicationDisplayService.cs | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/Ryujinx.HLE/HOS/Services/Vi/IApplicationDisplayService.cs b/Ryujinx.HLE/HOS/Services/Vi/IApplicationDisplayService.cs index b272e078..48cf3288 100644 --- a/Ryujinx.HLE/HOS/Services/Vi/IApplicationDisplayService.cs +++ b/Ryujinx.HLE/HOS/Services/Vi/IApplicationDisplayService.cs @@ -180,22 +180,31 @@ namespace Ryujinx.HLE.HOS.Services.Vi public long ConvertScalingMode(ServiceCtx context) { - SrcScalingMode scalingMode = (SrcScalingMode)context.RequestData.ReadInt32(); - DstScalingMode? destScalingMode = ConvetScalingModeImpl(scalingMode); + SrcScalingMode scalingMode = (SrcScalingMode)context.RequestData.ReadInt32(); - if (!destScalingMode.HasValue) + DstScalingMode? convertedScalingMode = ConvertScalingMode(scalingMode); + + if (!convertedScalingMode.HasValue) { + //Scaling mode out of the range of valid values. return MakeError(ErrorModule.Vi, 1); } - context.ResponseData.Write((ulong)destScalingMode); + if (scalingMode != SrcScalingMode.ScaleToWindow && + scalingMode != SrcScalingMode.PreserveAspectRatio) + { + //Invalid scaling mode specified. + return MakeError(ErrorModule.Vi, 6); + } + + context.ResponseData.Write((ulong)convertedScalingMode); return 0; } - private DstScalingMode? ConvetScalingModeImpl(SrcScalingMode srcScalingMode) + private DstScalingMode? ConvertScalingMode(SrcScalingMode source) { - switch (srcScalingMode) + switch (source) { case SrcScalingMode.None: return DstScalingMode.None; case SrcScalingMode.Freeze: return DstScalingMode.Freeze; |
