SceneCanvasにDPIScaleがかかっていないことの仕様について

お世話になっております。

[Content removed]

> Windowsのディスプレイ設定で「拡大縮小とレイアウト」部分を125%(推奨)にすると、FWindowsWindow::Initialize()でDPIScaleFactor=1.25が入り、DebugCanvasのDPIScaleにも1.25と正しく設定されるのですが、GameCanvasの方は1対1を想定していて常に1.0なので、このDPIScaleが使用されずに表示位置がずれるという現象のようです。

[Content removed]

こちらの​AHUD::CanvasのFCanvasに割り当てられるSceneCanvasにはDPIスケールがかかっていないのは何かしら理由があるのでしょうか?

処理的には

> virtual bool UGameViewportClient::ShouldDPIScaleSceneCanvas() const override { return false; }

によって明示的に抑制されています。

ゲーム側でGameViewportClientをオーバーライドすることで変更は可能なのですが、変更することで問題が出たりするのでしょうか?

何かしら情報をお持ちでしたら教えていただけますと幸いです。

再現手順

お世話になっております。

本件に関して確認したところ、当時の実装者は既に弊社を離れてしまっていたのですが

実装当時の情報(CL3582039)によると元々エディタのみDPI Scaleに対応した経緯があったようです。

※いくつかのスレッドでもあるように、DPI Scaleには個別で調整が必要なケースもあるため必要に応じて対応している、といった状況のようです。

特にオーバーライドすることでの問題は確認していませんが、これまで1.0想定で作られていたものがある可能性もありますので、

対応したい場合は検証を行った上で利用頂く必要がありそうです。

お手数おかけしますが、よろしくお願いいたします。

ご確認ありがとうございます。

次回問題が起きた時にトライしてみようかと思います。

情報ありがとうございました。