グラフィック
androidx.graphics
グループ内のすべてのアーティファクトのリストを以下に示します。
アーティファクト | 安定版リリース | リリース候補版 | ベータ版リリース | アルファ版リリース |
---|---|---|---|---|
graphics-core | 1.0.2 | - | - | - |
graphics-path | 1.0.1 | - | - | - |
graphics-shapes | 1.0.1 | - | - | 1.1.0-alpha01 |
依存関係の宣言
Graphics への依存関係を追加するには、Google の Maven リポジトリをプロジェクトに追加する必要があります。詳しくは、Google の Maven リポジトリをご覧ください。
アプリまたはモジュールの build.gradle
ファイルに、必要なアーティファクトの依存関係を追加します。
Groovy
dependencies { implementation "androidx.graphics:graphics-core:1.0.2" implementation "androidx.graphics:graphics-path:1.0.1" implementation "androidx.graphics:graphics-shapes:1.1.0-alpha01" }
Kotlin
dependencies { implementation("androidx.graphics:graphics-core:1.0.2") implementation("androidx.graphics:graphics-path:1.0.1") implementation("androidx.graphics:graphics-shapes:1.1.0-alpha01") }
依存関係について詳しくは、ビルド依存関係の追加をご覧ください。
フィードバック
お寄せいただいたフィードバックは Jetpack 改善の参考にさせていただきます。新しい問題が見つかった場合や、このライブラリを改善するアイデアをお持ちの場合は、お知らせください。新しい問題を報告していただく前に、このライブラリの既存の問題をご確認ください。スターボタンをクリックすると、既存の問題に投票できます。
詳細については、Issue Tracker のドキュメントをご覧ください。
このアーティファクトのリリースノートはありません。
グラフィック バージョン 1.1
バージョン 1.1.0-alpha01
2024 年 12 月 11 日
androidx.graphics:graphics-*:1.1.0-alpha01
がリリースされました。バージョン 1.1.0-alpha01 には、これらの commit が含まれています。
新機能
- メインのデモを汎用的なシェイプ エディタに変更しました。これにより、svg パスからシェイプをインポートし、自動プロセスで検出できなかった場合に検出された特徴を手動で編集し、結果を本番環境コードで使用できるコードにエクスポートできます。(I1ac13)
- シェイプのアウトラインの進行状況の角度測定を曲線の長さの測定に置き換え、より複雑なシェイプをモーフィングに使用できるようにしました。(I75478)、I390dd
- 特徴マッピング アルゴリズムを改善し、より自然なモーフィングを実現しました。(I83287)
API の変更
- SVG パスのインポートと特徴シリアライザを追加。通常のフローは次のとおりです。
- 新しい
SvgPathParser.parseFeatures()
を使用して、svg パス(svg のpath
要素のd
属性の値)をList<Feature>
に変換します。 - これを変更して、
FeatureSerializer.serialize()
で文字列にシリアル化できます。 - 生成された文字列は、
FeatureSerializer.parse()
でインポートして本番環境コードで使用できます。 - ステップ 1 と 2 は 1 回だけ行います。新しいアプリで行うことができます。製品版コードでは、ステップ 3 のみを行う必要があります。(I9bd00、b/371196190)、(Ic3842)、(If68ed)、(I10251)
- 新しい
- ポリゴン対象物と対象物タイプを公開します。
List<Features>
を受け取るベース コンストラクタを使用して、より汎用性の高いRoundedPolygons
を作成できるようになりました。特徴は主に 3 次ベジェ曲線のリストですが、モーフィング アルゴリズムが開始形状と終了形状を一致させるようにタグ付けされています(凸角は凸角にマッピングされ、凹角は凹角にマッピングされます)。(I61e76)、(I1fc5c) watchosDeviceArm64
KMP ターゲットとターゲット Kotlin 1.9 のサポートを追加しました。(Icf15d、b/364652024)
バグの修正
- 最後の特徴が空の場合のエグジット ケースを修正しました。(I390dd)
RoundedPolygon
の作成をより堅牢にします。(Ib862c、b/360888486)RoundedPolygon
の初期化に関するバグを修正しました。(I83ddb)- 多角形の中心を推定するアルゴリズムのエラーを修正しました。(Ida147)
Graphics Shapes バージョン 1.0
バージョン 1.0.0
2024 年 8 月 21 日
androidx.graphics:graphics-shapes:1.0.0
、androidx.graphics:graphics-shapes-android:1.0.0
、androidx.graphics:graphics-shapes-desktop:1.0.0
がリリースされました。バージョン 1.0.0 には、これらの commit が含まれています。
バージョン 1.0.0-rc01
2024 年 7 月 24 日
androidx.graphics:graphics-shapes:1.0.0-rc01
、androidx.graphics:graphics-shapes-android:1.0.0-rc01
、androidx.graphics:graphics-shapes-desktop:1.0.0-rc01
がリリースされました。バージョン 1.0.0-rc01 に含まれる commit については、こちらをご覧ください。
バージョン 1.0.0-beta01
2024 年 5 月 1 日
androidx.graphics:graphics-shapes:1.0.0-beta01
、androidx.graphics:graphics-shapes-android:1.0.0-beta01
、androidx.graphics:graphics-shapes-desktop:1.0.0-beta01
がリリースされました。バージョン 1.0.0-beta01 には、これらの commit が含まれています。
API の変更
- シェイプを事前に回転して、別のポイントから開始できるようにします。この変更により、
pillStar
シェイプの曲線を境界のデフォルト以外のポイントから開始できるようになりました。これは、シェイプのパスのストロークアニメーションで、シェイプの輪郭の特定の位置から描画を開始する場合に便利です。(Ifbb4d、b/324303807) - Morph に
calculateBounds()
関数を追加しました。これは、RoundedPolygon
の同じ関数と並行して動作します。(I8a3b6、b/325463575)
バージョン 1.0.0-alpha05
2024 年 2 月 7 日
androidx.graphics:graphics-shapes:1.0.0-alpha05
、androidx.graphics:graphics-shapes-android:1.0.0-alpha05
、androidx.graphics:graphics-shapes-desktop:1.0.0-alpha05
がリリースされました。バージョン 1.0.0-alpha05 に含まれる commit については、こちらをご覧ください。
新機能
- このライブラリに、丸い形や星形のシェイプを簡単に作成できる新しい
pill()
関数とpillStar()
関数が追加されました。また、シェイプに必要な正確な境界(以前の境界は、基盤となるベジェ曲線のアンカーとコントロール ポイントに基づく推定値にすぎませんでした)と、可能な最大境界を計算するための新しい API もあります。これは、シェイプをそのコンテナ内で回転させる場合に、シェイプを保持するコンテナのサイズを決定するのに役立ちます。(I71827)
API の変更
- 正確な境界と最大境界を取得するためのオプションが増えました。(I6d49f、b/317286450)
バグの修正
- 長さがゼロの曲線に関連する低レベルのレンダリングの問題により、これらのシェイプをストローク パスとして描画する際に、レンダリング アーティファクトが発生することがありました。このバグは、長さがゼロの曲線をすべて削除することで修正されました(形状では不要なため、形状によって生成されるパスのオーバーヘッドも削減されます)。
バージョン 1.0.0-alpha04
2023 年 12 月 13 日
androidx.graphics:graphics-shapes:1.0.0-alpha04
、androidx.graphics:graphics-shapes-android:1.0.0-alpha04
、androidx.graphics:graphics-shapes-desktop:1.0.0-alpha04
がリリースされました。バージョン 1.0.0-alpha04 に含まれる commit については、こちらをご覧ください。
新機能
- このリリースには、API の変更とバグの修正が含まれています。
- API の変更の多くは、Shapes ライブラリを KMP 対応にするためのものです。これにより、Android 以外のコード(Android に依存しない Compose コードなど)から簡単に呼び出せます。たとえば、以前の PointF、Matrix、Path 型などの Android 型は API にはありません。
- また、パフォーマンス上の理由(特にオブジェクトの割り当て(と収集)を最小限に抑えるため)で、API と実装にもいくつかの変更が加えられました。たとえば、PointF から個別の Float パラメータに移行すると、頂点の保持に多くの一時的な PointF 構造を割り当てる必要がなくなります。
API の変更
Morph.asMutableCubics
を、MutableCubics
を反復処理する関数に置き換えました。PointTransformer
関数インターフェースを変更し、Point
の x 座標と y 座標を受け取って、変換された x 座標と y 座標で構成されたTransformedResult
を返すようにしました。(I6719e)- パブリック
Cubic
コンストラクタを削除し、ファクトリ関数にしました。(I409ce) - Android 固有の変換と描画の API を追加しました。(I079f6、b/292289543)
- Android の依存関係を排除しました。(Iadc1c、b/292289543)
- アンカーとコントロールのプロパティ名がよりわかりやすくなりました。(If13bd、b/294562941)
PointF
パラメータをFloat
ペアに変更しました。(Id4705、b/276466399、b/290254314)progress
がMorph
描画コマンドに直接渡されるようになりました。(Icdca2)
バグの修正
- 大きなシェイプを作成する際のバグを修正しました。(I4fd66、b/313497325)
バージョン 1.0.0-alpha03
2023 年 6 月 7 日
androidx.graphics:graphics-shapes:1.0.0-alpha03
がリリースされました。バージョン 1.0.0-alpha03 に含まれる commit については、こちらをご覧ください。
API の変更
- 新しい
RoundedPolygon.rectangle()
関数を追加しました。(I78e7e、b/280322189) - Star 関数と Circle 関数は、大文字と小文字が区別されなくなり、
RoundedPolygon
のコンパニオン オブジェクトを介して呼び出されるようになります(例:RoundedPolygon.star(...)
(I14735)
バグの修正
- スムージングに関するバグを修正しました。(Ibf894)
- 開始シェイプと終了シェイプが同じ場合に発生するバグを修正しました。カットのために側面の使用可能なスペースをより適切に分散します。まず、使用可能なスペースを丸めるために使用し、残りのスペースがある場合はスムージングに使用します。(Ibd320、b/277936300)
バージョン 1.0.0-alpha02
2023 年 4 月 19 日
androidx.graphics:graphics-shapes:1.0.0-alpha02
がリリースされました。バージョン 1.0.0-alpha02 に含まれる commit については、こちらをご覧ください。
API の変更
- Polygon スーパークラスがサブクラス
RoundedPolygon
と統合されました。すべてのポリゴンが [オプションで] 丸いポリゴンになりました。 - Star 関数(引き続き
RoundedPolygon
を返します)は、以前のinnerRadiusRatio
パラメータではなく、innerRadius
値を受け取るようになりました。これは既存の radius パラメータと同じ単位で、よりシンプルで一貫性のある設定が可能です。また、内側と外側の半径の両方に同じ数値が適用されることを明確にするため、numOuterVertices
パラメータの名前がnumVerticesPerRadius
に変更されました。 CornerRounding.radius
は以前、ポリゴンのサイズに対して相対的であると記載されていましたが、相対値ではなく絶対値でした(そして、そうあるべきです)。ドキュメントが更新され、最大値を 1.0 に制限するアノテーションが修正されました。
バージョン 1.0.0-alpha01
2023 年 4 月 5 日
Graphics-Shapes は、丸みを帯びた多角形のシェイプを簡単に作成してレンダリングできる新しいライブラリです。また、さまざまなシェイプ間の簡単で自動的なモーフィング(アニメーション)も可能です。
androidx.graphics:graphics-shapes:1.0.0-alpha01
がリリースされました。このバージョンは内部ブランチからリリースされました。
新機能
- Polygon API を使用して、必要な数の頂点を持つ正多角形と星形のポリゴンを作成します。
- 角の丸め半径と角の滑らかさを指定するには、オプションの
CornerRounding
パラメータを使用します。これにより、角が丸い多角形のシェイプが作成されます。 - 新しい
Morph(Polygon, Polygon)
API を使用して「モーフィング」シェイプを自動的に計算します。このシェイプの進行状況は 0 ~ 1 の範囲で設定でき、開始シェイプと終了シェイプの間でアニメーション化できます。時間の経過とともにその進行をアニメーション化し、結果をフレームごとに描画して、これらの新しい丸い形状間のスムーズなアニメーションを作成します。
グラフィック パス バージョン 1.0
バージョン 1.0.1
2024 年 5 月 1 日
androidx.graphics:graphics-path:1.0.1
がリリースされました。バージョン 1.0.1 には、これらの commit が含まれています。
バグの修正
- コンパイラ フラグの改善。
バージョン 1.0.0
2024 年 3 月 6 日
androidx.graphics:graphics-path:1.0.0
がリリースされました。
バージョン 1.0.0-rc01
2024 年 2 月 21 日
androidx.graphics:graphics-path:1.0.0-rc01
がリリースされました。バージョン 1.0.0-rc01 に含まれる commit については、こちらをご覧ください。
バグの修正
- API 34 未満での PathIterator のパフォーマンスを改善しました。(Id4629)
バージョン 1.0.0-beta02
2024 年 1 月 10 日
このリリースの変更はすべて、ネイティブ コードによる前提条件により必要以上に大きかったライブラリのサイズを削減するためのものです。
androidx.graphics:graphics-path:1.0.0-beta02
がリリースされました。バージョン 1.0.0-beta02 に含まれる commit については、こちらをご覧ください。
バグの修正
libandroidx.graphics.path.so
のサイズを 96% 縮小しました。(I71397)libandroidx.graphics.path.so
のサイズを 5% 縮小します。(I2da7c)androidx.graphics:graphics-path
のネイティブ コンポーネントを 43% 縮小しました。(I8e40d)
バージョン 1.0.0-beta01
2023 年 11 月 29 日
androidx.graphics:graphics-path:1.0.0-beta01
がリリースされました。バージョン 1.0.0-beta01 に含まれる commit については、こちらをご覧ください。
API の変更
- 試験運用版の
isAtLeastU()
API の使用を削除しました。(Ie9117、b/289269026)
バグの修正
- ライブラリが円錐曲線を処理する方法など、さまざまな修正とパフォーマンスの改善を行いました。
バージョン 1.0.0-alpha02
2023 年 6 月 7 日
androidx.graphics:graphics-path:1.0.0-alpha02
がリリースされました。このバージョンは内部ブランチで開発されています。
新機能
- Android 14 プレビューで実行時に問題が発生する内部プラットフォーム バージョン チェックの問題を修正しました(バージョン チェックは失敗しますが、以前のリリースで行われていた処理のメカニズムが、特に Android 14 で正しく機能しない)。
バージョン 1.0.0-alpha01
2023 年 3 月 22 日
androidx.graphics:graphics-path:1.0.0-alpha01
がリリースされました。バージョン 1.0.0-alpha01 に含まれる commit については、こちらをご覧ください。
新機能
- この新しいライブラリを使用すると、新しい
PathIterator
API を介してパスデータをクエリできます。この API を使用すると、呼び出し元は Path オブジェクトのすべてのセグメントを反復処理して、それらのセグメントのオペレーションとデータを特定できます。 - このライブラリは、Android 14 プレビューで導入された類似の API を使用しますが、この AndroidX バージョンの API は API 21 以前のバージョンでも動作します。
Graphics Core バージョン 1.0
バージョン 1.0.2
2024 年 10 月 16 日
androidx.graphics:graphics-core:1.0.2
がリリースされました。バージョン 1.0.2 に含まれる commit はこちらをご覧ください。
バグの修正
SurfaceControl
インスタンスが解放された後もシステム コンポーザによって管理される問題を修正しました。- 低レイテンシの依存関係が破棄された後に、現在表示されている
HardwareBuffer
インスタンスが解放されない問題を修正しました - フロント バッファ使用フラグをサポートしていない一部の Android 14 以降のデバイスで発生していたちらつきの問題を修正しました
バージョン 1.0.1
2024 年 9 月 4 日
androidx.graphics:graphics-core:1.0.1
がリリースされました。バージョン 1.0.1 には、これらの commit が含まれています。
バグの修正
- メモリ リソースが解放されないことがある問題を修正しました。
バージョン 1.0.0
2024 年 5 月 29 日
androidx.graphics:graphics-core:1.0.0
がリリースされました。バージョン 1.0.0 には、これらの commit が含まれています。
1.0.0 の主な機能
- graphics-core ライブラリの公式安定版リリースです。1.0.0-rc01 からの軽微なバグの修正とパフォーマンスの改善が含まれています。
バージョン 1.0.0-rc01
2024 年 4 月 17 日
androidx.graphics:graphics-core:1.0.0-rc01
がリリースされました。このバージョンは内部ブランチで開発されています。
バグの修正
- Android 14 を搭載した特定の Android デバイスで、
CanvasBufferedRendererAPI
でファイル記述子が二重にクローズされる可能性がある問題を修正しました。 FrameBuffer
がフレームバッファ インスタンスを正しく削除しない問題を修正しました。
バージョン 1.0.0-beta01
2023 年 12 月 13 日
androidx.graphics:graphics-core:1.0.0-beta01
がリリースされました。バージョン 1.0.0-beta01 に含まれる commit については、こちらをご覧ください。
新機能
- ビュー階層内で Android の 2D グラフィック API(Canvas と Paint)による低レイテンシ レンダリングをサポートする新しい
LowLatencyCanvasView
API を導入しました。 HardwareBuffer
へのハードウェア アクセラレーション キャンバス レンダリングをサポートするCanvasBufferedRenderer
API を導入しました。これを使用して、ユーザー インターフェースの一部をバッファに描画し、Bitmap.wrapHardwareBuffer
API を使用してビットマップに変換できます。
API の変更
CanvasBufferRenderer#releaseBuffer
API を更新し、オプションのフェンス パラメータを追加しました。RenderResult#fence
が返されるタイミングについて説明するようにドキュメントを更新しました。(If1ea7)draw
メソッドをRenderRequest
に追加し、コルーチンを活用して描画リクエストをスケジュールできるようにしました。エグゼキュータを消費する以前の描画メソッドの名前をdrawAsync
に変更しました。isClosed()
メソッドをプロパティにリファクタリングしました。(I5bff6)- バッファ形式パラメータを
CanvasFrontBufferRenderer
に公開し、CanvasBufferedRenderer.Builder#setBufferFormat
に直接マッピングできるようにしました(I0f272) HardwareBuffer
へのハードウェア アクセラレーション キャンバス レンダリングを処理するCanvasBufferedRenderer
API を作成しました。これにより、Android Q にバックポートされた実装と、HardwareBuffers
のスワップチェーン深度の構成が提供されます。ColorSpace
の構成は引き続き Android U+ に限定されていますが、互換性の実装により、デベロッパーに代わって no-op 動作が提供されます。(I9b1d8)setFrameRate
/clearFrameRate
API をSurfaceControlCompat.Transaction
に追加して、シームレスな遷移またはデフォルトの遷移の変更戦略とともにフレームレートを制御します。(I6045c)setDataSpace
に必要な API レベルを Android T から Android Q に引き下げました。(I59c34)GLFrameBufferRenderer
API にonBufferReleased
コールバックを追加し、バッファが提示されなくなったときにコンシューマが状態をクリーンアップできるようにしました(I8a4e2)LowLatencyCanvasView
を作成して、ビュー階層のレンダリングと同期される低レイテンシのコンテンツのレンダリングというシンプルなユースケースをサポートします。これにより、同期レンダリングと低レイテンシ レンダリング用に画面外/画面内に転送されるSurfaceView
インスタンスを内部で管理することで、SurfaceView
管理の複雑さが軽減されます。(I9253b)CanvasFrontBufferedRenderer
API にカラースペース構成のサポートを追加しました。マルチバッファリング コールバックを更新し、バックバッファリングされたSurfaceControl
も含めるようにしました。(I24bd9)
バージョン 1.0.0-alpha05
2023 年 9 月 6 日
androidx.graphics:graphics-core:1.0.0-alpha05
がリリースされました。バージョン 1.0.0-alpha05 に含まれる commit については、こちらをご覧ください。
新機能
GLFrameBufferRenderer
API を導入しました。これにより、OpenGL の依存関係、スワップチェーンの構成、ピクセル形式、SurfaceControl
構成の組み合わせが提供されます。(Ic775b)
API の変更
- さまざまなコールバック API に width パラメータと height パラメータを追加し、
SurfaceHolder#Callbacks
からディメンションをパイプするようにしました。(I7f9fc) - フロントバッファとマルチバッファの両方のレイヤをクリアする clear API を追加しました。(Ic1f95)
GLFrontBufferedRenderer
内で使用されるスワップチェーンの基盤となるバッファタイプを構成するサポートを追加しました。(I07a13)GLFrameBufferRenderer
のゲッターの Kotlin プロパティ、最大バッファ エントリのIntRange
アノテーション、setFormat
/setUsage
のHardwareBufferFormart
アノテーションとHardwareBufferUsage
アノテーションを追加しました。(Ief89e)SurfaceControl
トランザクションのsetBuffer
API を更新し、リリース フェンスを提供しました。(Ice1bb)- データスペースを構成し、明るさの拡張範囲を設定するための
SurfaceControlCompat.Transaction
API を追加しました。(Ic378d)
バージョン 1.0.0-alpha04
2023 年 6 月 7 日
androidx.graphics:graphics-core:1.0.0-alpha04
がリリースされました。バージョン 1.0.0-alpha04 に含まれる commit については、こちらをご覧ください。
新機能
- 既存の OpenGL 実装とともに
android.graphics.Canvas
API を活用した低レイテンシ グラフィックをサポートするCanvasFrontBufferedRenderer
を導入しました
API の変更
SurfaceControlCompat.Transaction#setBuffer
API を更新し、nullable のHardwareBuffer
インスタンスが対応するプラットフォーム API をミラーリングできるようにしました(I173d7)- バッキング スワップチェーンに 2 つを超えるバッファが含まれる可能性があるため、ダブルバッファ レンダリングを参照するメソッドの名前をマルチバッファに変更しました。(I830d7)
CanvasFrontBufferedRenderer
API を作成して、サードパーティが Canvas API を使用してフロントバッファリング レンダリング システムを活用できるようにします。(Ibfc29)
バグの修正
- 対応するアクティビティを再開した後に
GLFrontBufferedRenderer
がコンテンツをレンダリングしない問題を修正しました。 - 前面バッファに保存されたコンテンツが早期に消去される問題を修正しました。
- 低レイテンシ グラフィック API のリリース後に
SurfaceHolder.Callbacks
が削除されない問題を修正しました。
バージョン 1.0.0-alpha03
2023 年 3 月 22 日
androidx.graphics:graphics-core:1.0.0-alpha03
がリリースされました。バージョン 1.0.0-alpha03 に含まれる commit については、こちらをご覧ください。
API の変更
GLFrontBufferedRenderer
コールバックの実装を更新し、バッファの幅と高さに加えて、中間スクラッチ バッファへのレンダリング後に元の宛先を再ターゲティングするために使用できるフレームバッファ ID を含むBufferInfo
オブジェクトを提供するようにしました。(I7fe20)SyncFence
の作成をSyncFenceCompat
の静的ファクトリ メソッドに統合しました。eglDupNativeFenceFDANDROID
のパブリック互換メソッドを削除し、SyncFence の作成にSyncFenceCompat
ファクトリ メソッドを使用できるようにしました。これは、API レベルに関係なく、すべての API サーフェスが正しいSyncFence
実装を受け取るようにするためです。(I849bb)FrameBufferRenderer
とSyncStrategy
のドキュメントを追加しました。FrameBufferRenderer
、FrameBuffer
、FrameBufferPool
をandroidx.graphics.opengl
パッケージに移動しましたSyncStrategy
をandroidx.graphics.opengl
パッケージに移動しましたRenderCallback#onDraw
のドキュメントを更新しました- API の実装者が
FrameBuffer.close
を呼び出す責任があることを示すRenderCallback#obtainFrameBuffer
のドキュメントを更新しました onDrawComplete
を更新し、表示するコンテンツのディスパッチはコンシューマの責任であることを明記- フレームワークをミラーリングするために、
SyncFence
互換性インターフェース/クラスをandroidx.hardware
パッケージに移動しました SyncFence
API の名前をSyncFenceV19
に変更し、非公開にして、可能な限りフレームワークのSyncFence
API を利用するSyncFenceCompat
に使用を統合しました。(I5149c)
GLFrontBufferedRenderer#cancel
メソッドとGLFrontBufferedRenderer#execute
メソッドを追加しました。前者は、フロント バッファへのレンダリングをキャンセルしてフロント バッファを非表示にする必要がある手のひら拒否のシナリオで役立ちます。後者は、レンダリングをスケジュールしなくても GL スレッドでオブジェクトを操作するシナリオで便利です。(If0b7f)- ダブルバッファ レイヤに直接レンダリングする API を追加しました。これにより、再開後にシーンを再レンダリングできます。また、レンダリングするシーンに基づいて、フロントバッファ レンダリングを動的に活用するタイミングをコンシューマが選択的に決定することもできます。(Ied56c)
SurfaceView
の既存のメカニズムに加えて、別のSurfaceControl
インスタンスから親SurfaceControl
の構成をサポートする新しい API がSurfaceControlCompat.Builder
に追加されました。(I1d1b6)- 非推奨になった非表示関数の戻り値の型の null 可能性を拡大しました。(Ibf7b0)
- Android デバイスが、
EGLImage
インスタンスとして使用できるEGLClientBuffer
オブジェクトへのHardwareBuffer
インスタンスのインポートをサポートしているかどうかをクエリするEGL_ANDROID_get_native_client_buffer
拡張定数を追加しました。(Iad767) @JvmDefaultWithCompatibility
アノテーションを追加しました。(I8f206)
バージョン 1.0.0-alpha02
2022 年 11 月 9 日
androidx.graphics:graphics-core:1.0.0-alpha02
がリリースされました。バージョン 1.0.0-alpha02 に含まれる commit については、こちらをご覧ください。
API の変更
- Android S で導入された
addTransactionCommitListener
のRequiresApi
アノテーションが欠落する問題を修正しました(I0a035) onDraw<Front/Double>
バッファのコールバックを更新して、コンシューマーが現在のバッファの幅、高さに加えて、頂点シェーダーに渡すことができる変換マトリックスを提供するようにしました。これらのパラメータを使用して、OpenGL レンダリング コードを正しく事前回転することは、コンシューマーの責任です。(I82f9e)
バグの修正
SurfaceControl
トランザクションを発行する前にバッファを事前回転することで、グラフィックのレイテンシを改善しました。- エラーログにエラー 300d(EGL_BAD_SURFACE)が表示される問題を修正しました。
- 対応するアクティビティが再開された後、内部で使用された
GLFrontBufferedRenderer
が無効になる問題を修正しました。 - エミュレータと ChromeOS デバイスのサポートを強化しました。
- 前面バッファのレイヤが非表示になるのが早すぎる可能性がある問題を修正しました。
バージョン 1.0.0-alpha01
2022 年 10 月 24 日
androidx.graphics:graphics-core:1.0.0-alpha01
がリリースされました。バージョン 1.0.0-alpha01 に含まれる commit については、こちらをご覧ください。
新機能
- graphics コア AndroidX ライブラリの初回リリースです。このリリースには、タッチペン入力などの低レイテンシ ユースケースをサポートする API が含まれています。また、OpenGL を使用するためのヘルパー API もいくつか導入されています。
API の変更
GLFrontBufferedRenderer
を導入しました。このクラスは、前面およびマルチバッファのレンダリングを補助し、低レイテンシかつ高品質のレンダリング出力を実現します。GLRenderer
API を導入しました。この API は、SurfaceView
やTextureView
などのさまざまなサーフェス プロバイダで OpenGL レンダリングを補助します。