|
|
@ -1199,6 +1199,23 @@ private:
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void GetIndirectLayerImageRequiredMemoryInfo(Kernel::HLERequestContext& ctx) {
|
|
|
|
|
|
|
|
IPC::RequestParser rp{ctx};
|
|
|
|
|
|
|
|
const auto width = rp.Pop<u64>();
|
|
|
|
|
|
|
|
const auto height = rp.Pop<u64>();
|
|
|
|
|
|
|
|
LOG_DEBUG(Service_VI, "called width={}, height={}", width, height);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
constexpr std::size_t base_size = 0x20000;
|
|
|
|
|
|
|
|
constexpr std::size_t alignment = 0x1000;
|
|
|
|
|
|
|
|
const auto texture_size = width * height * 4;
|
|
|
|
|
|
|
|
const auto out_size = (texture_size + base_size - 1) / base_size * base_size;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
IPC::ResponseBuilder rb{ctx, 6};
|
|
|
|
|
|
|
|
rb.Push(RESULT_SUCCESS);
|
|
|
|
|
|
|
|
rb.Push(out_size);
|
|
|
|
|
|
|
|
rb.Push(alignment);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
static ResultVal<ConvertedScaleMode> ConvertScalingModeImpl(NintendoScaleMode mode) {
|
|
|
|
static ResultVal<ConvertedScaleMode> ConvertScalingModeImpl(NintendoScaleMode mode) {
|
|
|
|
switch (mode) {
|
|
|
|
switch (mode) {
|
|
|
|
case NintendoScaleMode::None:
|
|
|
|
case NintendoScaleMode::None:
|
|
|
@ -1243,7 +1260,8 @@ IApplicationDisplayService::IApplicationDisplayService(
|
|
|
|
{2102, &IApplicationDisplayService::ConvertScalingMode, "ConvertScalingMode"},
|
|
|
|
{2102, &IApplicationDisplayService::ConvertScalingMode, "ConvertScalingMode"},
|
|
|
|
{2450, nullptr, "GetIndirectLayerImageMap"},
|
|
|
|
{2450, nullptr, "GetIndirectLayerImageMap"},
|
|
|
|
{2451, nullptr, "GetIndirectLayerImageCropMap"},
|
|
|
|
{2451, nullptr, "GetIndirectLayerImageCropMap"},
|
|
|
|
{2460, nullptr, "GetIndirectLayerImageRequiredMemoryInfo"},
|
|
|
|
{2460, &IApplicationDisplayService::GetIndirectLayerImageRequiredMemoryInfo,
|
|
|
|
|
|
|
|
"GetIndirectLayerImageRequiredMemoryInfo"},
|
|
|
|
{5202, &IApplicationDisplayService::GetDisplayVsyncEvent, "GetDisplayVsyncEvent"},
|
|
|
|
{5202, &IApplicationDisplayService::GetDisplayVsyncEvent, "GetDisplayVsyncEvent"},
|
|
|
|
{5203, nullptr, "GetDisplayVsyncEventForDebug"},
|
|
|
|
{5203, nullptr, "GetDisplayVsyncEventForDebug"},
|
|
|
|
};
|
|
|
|
};
|
|
|
|