Webview を使用するアプリケーションのデフォルトを設定することで、最適化されたレンダリングを有効にすることができます。defaults write
加速されたキャンバス レンダリングを有効にするために使用できる WebDeveloperExtras を有効にするのと同様です。私にとっては、次のフラグによってパフォーマンスが向上しました。
defaults write <bundle.id> WebKitAccelerated2dCanvasEnabled -bool true
defaults write <bundle.id> WebKitAcceleratedDrawingEnabled -bool true
defaults write <bundle.id> WebKitCanvasUsesAcceleratedDrawing -bool true
または、プライベート メソッドをWebPreferences
インターフェイスに追加することもできます。
@interface WebPreferences (WebPrivate)
...
- (BOOL)accelerated2dCanvasEnabled;
- (void)setAccelerated2dCanvasEnabled:(BOOL)enabled;
- (BOOL)acceleratedDrawingEnabled;
- (void)setAcceleratedDrawingEnabled:(BOOL)enabled;
- (BOOL)canvasUsesAcceleratedDrawing;
- (void)setCanvasUsesAcceleratedDrawing:(BOOL)enabled;
- (BOOL)acceleratedCompositingEnabled;
- (void)setAcceleratedCompositingEnabled:(BOOL)enabled;
...
@end
次に、プログラムで使用します。
WebPreferences* prefs = [webView preferences];
[prefs setAccelerated2dCanvasEnabled:YES];
[prefs setAcceleratedDrawingEnabled:YES];
[prefs setCanvasUsesAcceleratedDrawing:YES];
[prefs setAcceleratedCompositingEnabled:YES];
[webView setPreferences:prefs];