問題タブ [skia]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
11624 参照

android - Android の (2D) Canvas 描画パイプラインのピースはどのように組み合わされますか?

Android の (2D) Canvas 描画パイプラインのコンポーネントがどのように組み合わされるかについて、よりよく理解したいと思います。

たとえば、XferModeShaderMaskFilter、およびColorFilterはどのように相互作用しますか? これらのクラスのリファレンス ドキュメントはかなりまばらで、CanvasPaintのドキュメントには有用な説明がまったく追加されていません。

また、固有の色を持つ描画操作 (例:drawBitmapと のような「ベクトル」プリミティブdrawRect) がこれらすべてにどのように適合するかは、私には完全には明らかではありません。それらは常に の色を無視し、Paint代わりに固有の色を使用しますか?

また、次のようなことができるという事実にも驚きました。

これにより、楕円が消去されます。これに気付く前に、私のメンタルモデルは、キャンバスへの描画は(概念的に)別の「レイヤー」に描画され、そのレイヤーはペイントの転送モードを使用してキャンバスのビットマップで構成されるというものでした。CLEAR はソースのアルファに関係なく常に色 (およびアルファ) を 0 に設定するため、それがそれほど単純である場合、上記のコードはビットマップ全体 (クリッピング領域内) を消去します。したがって、これは、消去を楕円形に制限するために、追加の種類のマスキングが行われていることを意味します。

私はAPI デモを見つけましたが、各デモは「真空状態で」動作し、焦点を当てているもの (例: XferModes) が他のもの (例: ColorFilters) とどのように相互作用するかを示していません。

十分な時間と労力をかけて、これらの部分がどのように関連しているか、ソースを解読するかを経験的に理解することができましたが、他の誰かがすでにこれを解決しているか、パイプライン/描画モデルの実際のドキュメントがあることを願っています.私は逃した。

この質問は、別の SO question に対するこの回答のコードを見て触発されました。

アップデート

いくつかのドキュメントを探しているときに、ここで私が興味を持っているものの多くはskiaの上にあるかなり薄いベニヤのように見えるので、役立つスキーのドキュメントがいくつかあることに気づきました。私が見つけることができる最高のものは、次のようなドキュメントですSkPaint

ペイントに割り当てることができる効果には 6 種類あります。

  • SkPathEffect - アルファ マスクを生成する前のジオメトリ (パス) への変更 (ダッシュなど)
  • SkRasterizer - カスタム マスク レイヤー (シャドウなど) の作成
  • SkMaskFilter - 色付けして描画する前のアルファ マスクの変更 (ぼかし、エンボスなど)
  • SkShader - グラデーション (リニア、ラジアル、スイープ)、ビットマップ パターン (クランプ、リピート、ミラー) など
  • SkColorFilter - xfermode を適用する前にソース カラーを変更します (カラー マトリックスなど)。
  • SkXfermode - 例: porter-duff 転送モード、ブレンド モード

明示的には述べられていませんが、ここでの効果の順序は、パイプラインに表示される順序であると推測しています。

0 投票する
2 に答える
4165 参照

android - Android Canvasで「反転」ペイントを使用して描画するにはどうすればよいですか?

キャンバスに何かを描きます。逆の色で円を描きたいです。

myPaint円のピクセルが下にあるピクセルの反転色になるように構成するにはどうすればよいですか?

ありがとう

0 投票する
4 に答える
18594 参照

android - AndroidNDKでのSkiaの使用

android.graphics。*がネイティブのSkiaライブラリに依存しているというのは本当ですか?もしそうなら、私のネイティブC / C ++コードでSkiaライブラリにアクセスすることは可能ですか?

0 投票する
2 に答える
8231 参照

skia - UbuntuでSkiaを使ってグラフィックを学びたい

グラフィックプログラミングを学びたい、Skiaをライブラリとして使いたい。Ubuntuでそれを始めるにはどうすればよいですか?

0 投票する
0 に答える
554 参照

android - Cygwinの下でAndroidツリーでSkiaをコンパイルしようとしています

Cygwin の Android ツリーで Skia をコンパイルしようとしていますが、次のエラー メッセージが表示されます。

GCC が ARMv7-A をサポートしていないためですか?

0 投票する
1 に答える
2651 参照

android - Android - 画像の skia デコード エラー

次のように画像をデコードしようとしています:

画像は取得できますが、デコードされず、次のエラーがスローされます。

09-29 11:27:38.675: DEBUG/skia(14907): --- デコーダー > デコードが false を返しました

skia エラーを処理するこのコードに従っています: http://code.google.com/p/shelves/source/browse/trunk/Shelves/src/org/curiouscreature/android/shelves/util/ImageUtilities.java

しかし、それは問題を解決しません。

誰でも助けてもらえますか?

0 投票する
0 に答える
292 参照

android - Android Skia リモート サーフェス

こんにちは、「レンダリングされていない」レンダリング呼び出しを Android から 2 番目の画面に転送する可能性を調査していました。調査中に、Skia が Surfacefinger と Canvas.draw() メソッドの背後にあることがわかりました。だから私の質問は今、2番目のスクリーン/マシンに使用するためにコールを分岐するのに最適なインターセプトポイントは何ですか. 2 番目のデバイスは純粋なリプレイ デバイスではなく、別の Android デバイスにすることができます。

最初にその概念に VNC を使用しましたが、ダブル バッファリング効果のためにパフォーマンスが悪いことがすぐにわかりました。ダブル バッファリングを省略した意味で Android コードを操作することもできますが、それでも興味深い実際には、おそらくスケーリングされた 2 番目のデバイスで、事前にレンダリングされた呼び出しを使用します。

ありがとう

0 投票する
0 に答える
380 参照

2d - SkPicture の堅牢性は?

Skia では、何かを SkPicture に記録すると、必要なすべてのメモリが保持されることが保証されますか? すなわち

drawPicture() がクラッシュする原因となるものを削除できるシナリオはありますか、それとも常に動作することが保証されていますか?

0 投票する
4 に答える
2135 参照

android - Android Skia logcat 出力のドキュメントはありますか?

logcat で次のメッセージが表示されることがあります。

そして、私はそれが何を意味するのかわかりません。グーグルで検索すると、おそらくビットマップ ファクトリのインスタンス化を表す C++ ファイルが見つかりました。

BitmapFactory.cpp

C++ ファイルを読むのは楽しいことですが、これらのメッセージが何を意味するかについてのドキュメントはありますか? 奇妙なバグを追跡しなければならなかったことが何度かあり、後で Skia メッセージが関連性があることが判明したか、少なくとも関連性があるように見えました。

0 投票する
0 に答える
304 参照

java - BitmapRegionDecoderの制限に関するアイデア

最近、BitmapRegionDecoderでメモリの問題が発生し始めました。奇妙なことに、はい、パーツのみを読み取るように設計されており、必要なパーツは通常100〜200ピクセル×100〜200ピクセルです。

私の質問は、BitmapRegionDecoderで使用できる画像のサイズの制限はどこにありますか?たとえば、合計で約500MBの50,000x30,000JPEGで問題が発生しています。(これは高解像度のマップであるため、サイズです。)