ブラウザのGPU描画:SVG transformでGPUで描画されない問題について

256 views
Skip to first unread message

ka2q

unread,
Jan 11, 2012, 12:15:24 AM1/11/12
to 日本Androidの会
はじめまして。


Webアプリ(WebView)において、-webkit-transform:translate3d(・・・)を活用して描画高速化(GPU描画)
を図ろうとしています。
GPU描画の目的は、タッチ操作に連動したエレメント移動の際のネイティブアプリ並みのスムーズな動作の実現です。

その際、私のWebアプリにおいてはSVGを活用したベクタ描画を行っているので、SVGについてもタッチ操作に連動した移動を行いますが、SVGの移
動においては、広いピクセル範囲の描画を行う関係から、SVGのtransform属性を利用してSVGエレメント領域を変更せずに表示位置を変更する
手続きを行います。

そこで、気づいたのですがAndroidにおいては、SVGタグに-webkit-transform:translate3d(・・・)を指定してい
ても、transform属性での移動についてはGPUで描画が行われていない(transform属性を変更した移動定義の描画は、GPUで描画され
たエレメント移動の描画と異なるタイミングで描画される(=遅延する))ことが判りました。

結果として、現時点ではGPU描画を行うWebアプリを構築しようとした場合、SVGのtransform属性で移動が利用できない(描画が遅れる)制
約が発生してしまっています。


ちなみに、iOSではSVGのtransform属性での移動についてもGPU描画で処理されます。


Androidの実装改善を要望したいところなのですが、英語が苦手なものでこちらに問題提起として登録させて頂いた次第です。
本会を通じてフィードバックして頂ければ幸いです。
Reply all
Reply to author
Forward
0 new messages