ScrollRect:by: が Mojave で動作が変わった
投稿ツリー
-
ScrollRect:by: が Mojave で動作が変わった (品川地蔵, 2019/7/28 19:53)
-
Re: ScrollRect:by: が Mojave で動作が変わった (品川地蔵, 2019/7/29 11:21)
-
Re: ScrollRect:by: が Mojave で動作が変わった (品川地蔵, 2019/8/17 9:49)
-
-
品川地蔵
投稿数: 318

コードレベルの細かな話ですが。
NSViewに表題のメソッドがあります。展望図の自動スクロールにこれを使用しています。この動作がMojaveから(もしかしたらHigh Sierraからかも)変わっています。描画済みの画像をスクロールして、移動した残りだけ描画すれば良いはずなのですが、Mojaveではスクロールされず [NSView setNeedsDisplay:YES] が実行されて、ビュー全体を描画するしかなくなります。結果、スクロール速度が遅くなってしまいました。この影響はCPUパッケージにGPUを内蔵しているシステムでは大した影響ではいのですが、GPUが独立しているシステムで大きく影響します。今年、初めて独立GPUのiMacを購入したのですが、なぜ遅いのか調査していて判りました。
さてどういう対策ができるのか。
NSViewに表題のメソッドがあります。展望図の自動スクロールにこれを使用しています。この動作がMojaveから(もしかしたらHigh Sierraからかも)変わっています。描画済みの画像をスクロールして、移動した残りだけ描画すれば良いはずなのですが、Mojaveではスクロールされず [NSView setNeedsDisplay:YES] が実行されて、ビュー全体を描画するしかなくなります。結果、スクロール速度が遅くなってしまいました。この影響はCPUパッケージにGPUを内蔵しているシステムでは大した影響ではいのですが、GPUが独立しているシステムで大きく影響します。今年、初めて独立GPUのiMacを購入したのですが、なぜ遅いのか調査していて判りました。
さてどういう対策ができるのか。
--
## 品川地蔵 ##