diff options
| author | 2018-11-23 23:32:19 -0500 | |
|---|---|---|
| committer | 2018-11-23 23:32:19 -0500 | |
| commit | e65966bcfceafca3cc2ebb7eab41918db99ea265 (patch) | |
| tree | b616942a107069bb61987586d1c538b1e4b2a0c5 /src/core | |
| parent | Merge pull request #1747 from DarkLordZach/exefs-lfs (diff) | |
| parent | Removed hard coded values for width and height (diff) | |
| download | yuzu-e65966bcfceafca3cc2ebb7eab41918db99ea265.tar.gz yuzu-e65966bcfceafca3cc2ebb7eab41918db99ea265.tar.xz yuzu-e65966bcfceafca3cc2ebb7eab41918db99ea265.zip | |
Merge pull request #1708 from ogniK5377/res-scale
Report resolution scaling support for vi and am
Diffstat (limited to 'src/core')
| -rw-r--r-- | src/core/hle/service/am/am.cpp | 12 | ||||
| -rw-r--r-- | src/core/hle/service/vi/vi.cpp | 32 |
2 files changed, 31 insertions, 13 deletions
diff --git a/src/core/hle/service/am/am.cpp b/src/core/hle/service/am/am.cpp index f4127701f..4f17b52f9 100644 --- a/src/core/hle/service/am/am.cpp +++ b/src/core/hle/service/am/am.cpp | |||
| @@ -483,11 +483,15 @@ void ICommonStateGetter::GetDefaultDisplayResolution(Kernel::HLERequestContext& | |||
| 483 | rb.Push(RESULT_SUCCESS); | 483 | rb.Push(RESULT_SUCCESS); |
| 484 | 484 | ||
| 485 | if (Settings::values.use_docked_mode) { | 485 | if (Settings::values.use_docked_mode) { |
| 486 | rb.Push(static_cast<u32>(Service::VI::DisplayResolution::DockedWidth)); | 486 | rb.Push(static_cast<u32>(Service::VI::DisplayResolution::DockedWidth) * |
| 487 | rb.Push(static_cast<u32>(Service::VI::DisplayResolution::DockedHeight)); | 487 | static_cast<u32>(Settings::values.resolution_factor)); |
| 488 | rb.Push(static_cast<u32>(Service::VI::DisplayResolution::DockedHeight) * | ||
| 489 | static_cast<u32>(Settings::values.resolution_factor)); | ||
| 488 | } else { | 490 | } else { |
| 489 | rb.Push(static_cast<u32>(Service::VI::DisplayResolution::UndockedWidth)); | 491 | rb.Push(static_cast<u32>(Service::VI::DisplayResolution::UndockedWidth) * |
| 490 | rb.Push(static_cast<u32>(Service::VI::DisplayResolution::UndockedHeight)); | 492 | static_cast<u32>(Settings::values.resolution_factor)); |
| 493 | rb.Push(static_cast<u32>(Service::VI::DisplayResolution::UndockedHeight) * | ||
| 494 | static_cast<u32>(Settings::values.resolution_factor)); | ||
| 491 | } | 495 | } |
| 492 | 496 | ||
| 493 | LOG_DEBUG(Service_AM, "called"); | 497 | LOG_DEBUG(Service_AM, "called"); |
diff --git a/src/core/hle/service/vi/vi.cpp b/src/core/hle/service/vi/vi.cpp index d25fdb1fe..a72416084 100644 --- a/src/core/hle/service/vi/vi.cpp +++ b/src/core/hle/service/vi/vi.cpp | |||
| @@ -510,7 +510,11 @@ private: | |||
| 510 | 510 | ||
| 511 | if (transaction == TransactionId::Connect) { | 511 | if (transaction == TransactionId::Connect) { |
| 512 | IGBPConnectRequestParcel request{ctx.ReadBuffer()}; | 512 | IGBPConnectRequestParcel request{ctx.ReadBuffer()}; |
| 513 | IGBPConnectResponseParcel response{1280, 720}; | 513 | IGBPConnectResponseParcel response{ |
| 514 | static_cast<u32>(static_cast<u32>(DisplayResolution::UndockedWidth) * | ||
| 515 | Settings::values.resolution_factor), | ||
| 516 | static_cast<u32>(static_cast<u32>(DisplayResolution::UndockedHeight) * | ||
| 517 | Settings::values.resolution_factor)}; | ||
| 514 | ctx.WriteBuffer(response.Serialize()); | 518 | ctx.WriteBuffer(response.Serialize()); |
| 515 | } else if (transaction == TransactionId::SetPreallocatedBuffer) { | 519 | } else if (transaction == TransactionId::SetPreallocatedBuffer) { |
| 516 | IGBPSetPreallocatedBufferRequestParcel request{ctx.ReadBuffer()}; | 520 | IGBPSetPreallocatedBufferRequestParcel request{ctx.ReadBuffer()}; |
| @@ -692,11 +696,15 @@ private: | |||
| 692 | rb.Push(RESULT_SUCCESS); | 696 | rb.Push(RESULT_SUCCESS); |
| 693 | 697 | ||
| 694 | if (Settings::values.use_docked_mode) { | 698 | if (Settings::values.use_docked_mode) { |
| 695 | rb.Push(static_cast<u32>(Service::VI::DisplayResolution::DockedWidth)); | 699 | rb.Push(static_cast<u32>(Service::VI::DisplayResolution::DockedWidth) * |
| 696 | rb.Push(static_cast<u32>(Service::VI::DisplayResolution::DockedHeight)); | 700 | static_cast<u32>(Settings::values.resolution_factor)); |
| 701 | rb.Push(static_cast<u32>(Service::VI::DisplayResolution::DockedHeight) * | ||
| 702 | static_cast<u32>(Settings::values.resolution_factor)); | ||
| 697 | } else { | 703 | } else { |
| 698 | rb.Push(static_cast<u32>(Service::VI::DisplayResolution::UndockedWidth)); | 704 | rb.Push(static_cast<u32>(Service::VI::DisplayResolution::UndockedWidth) * |
| 699 | rb.Push(static_cast<u32>(Service::VI::DisplayResolution::UndockedHeight)); | 705 | static_cast<u32>(Settings::values.resolution_factor)); |
| 706 | rb.Push(static_cast<u32>(Service::VI::DisplayResolution::UndockedHeight) * | ||
| 707 | static_cast<u32>(Settings::values.resolution_factor)); | ||
| 700 | } | 708 | } |
| 701 | 709 | ||
| 702 | rb.PushRaw<float>(60.0f); | 710 | rb.PushRaw<float>(60.0f); |
| @@ -901,11 +909,15 @@ private: | |||
| 901 | rb.Push(RESULT_SUCCESS); | 909 | rb.Push(RESULT_SUCCESS); |
| 902 | 910 | ||
| 903 | if (Settings::values.use_docked_mode) { | 911 | if (Settings::values.use_docked_mode) { |
| 904 | rb.Push(static_cast<u64>(DisplayResolution::DockedWidth)); | 912 | rb.Push(static_cast<u64>(DisplayResolution::DockedWidth) * |
| 905 | rb.Push(static_cast<u64>(DisplayResolution::DockedHeight)); | 913 | static_cast<u32>(Settings::values.resolution_factor)); |
| 914 | rb.Push(static_cast<u64>(DisplayResolution::DockedHeight) * | ||
| 915 | static_cast<u32>(Settings::values.resolution_factor)); | ||
| 906 | } else { | 916 | } else { |
| 907 | rb.Push(static_cast<u64>(DisplayResolution::UndockedWidth)); | 917 | rb.Push(static_cast<u64>(DisplayResolution::UndockedWidth) * |
| 908 | rb.Push(static_cast<u64>(DisplayResolution::UndockedHeight)); | 918 | static_cast<u32>(Settings::values.resolution_factor)); |
| 919 | rb.Push(static_cast<u64>(DisplayResolution::UndockedHeight) * | ||
| 920 | static_cast<u32>(Settings::values.resolution_factor)); | ||
| 909 | } | 921 | } |
| 910 | } | 922 | } |
| 911 | 923 | ||
| @@ -922,6 +934,8 @@ private: | |||
| 922 | void ListDisplays(Kernel::HLERequestContext& ctx) { | 934 | void ListDisplays(Kernel::HLERequestContext& ctx) { |
| 923 | IPC::RequestParser rp{ctx}; | 935 | IPC::RequestParser rp{ctx}; |
| 924 | DisplayInfo display_info; | 936 | DisplayInfo display_info; |
| 937 | display_info.width *= static_cast<u64>(Settings::values.resolution_factor); | ||
| 938 | display_info.height *= static_cast<u64>(Settings::values.resolution_factor); | ||
| 925 | ctx.WriteBuffer(&display_info, sizeof(DisplayInfo)); | 939 | ctx.WriteBuffer(&display_info, sizeof(DisplayInfo)); |
| 926 | IPC::ResponseBuilder rb{ctx, 4}; | 940 | IPC::ResponseBuilder rb{ctx, 4}; |
| 927 | rb.Push(RESULT_SUCCESS); | 941 | rb.Push(RESULT_SUCCESS); |