グラフィック
androidx.graphics グループ内のすべてのアーティファクトのリストを以下に示します。
| アーティファクト | 安定版リリース | リリース候補版 | ベータ版リリース | アルファ版リリース |
|---|---|---|---|---|
| graphics-core | 1.0.3 | - | - | - |
| graphics-path | 1.0.1 | - | - | 1.1.0-alpha01 |
| graphics-shapes | 1.1.0 | - | - | - |
依存関係の宣言
Graphics への依存関係を追加するには、Google の Maven リポジトリをプロジェクトに追加する必要があります。詳しくは、Google の Maven リポジトリをご覧ください。
アプリまたはモジュールの build.gradle ファイルに、必要なアーティファクトの依存関係を追加します。
Groovy
dependencies { implementation "androidx.graphics:graphics-core:1.0.3" implementation "androidx.graphics:graphics-path:1.1.0-alpha01" implementation "androidx.graphics:graphics-shapes:1.1.0" }
Kotlin
dependencies { implementation("androidx.graphics:graphics-core:1.0.3") implementation("androidx.graphics:graphics-path:1.1.0-alpha01") implementation("androidx.graphics:graphics-shapes:1.1.0") }
依存関係について詳しくは、ビルド依存関係の追加をご覧ください。
フィードバック
お寄せいただいたフィードバックは Jetpack 改善の参考にさせていただきます。新しい問題が見つかった場合や、このライブラリを改善するアイデアをお持ちの場合は、お知らせください。新しい問題を報告していただく前に、このライブラリの既存の問題をご確認ください。スターボタンをクリックすると、既存の問題に投票できます。
詳細については、Issue Tracker のドキュメントをご覧ください。
このアーティファクトのリリースノートはありません。
Graphics バージョン 1.1
バージョン 1.1.0
2025 年 10 月 22 日
androidx.graphics:graphics-*:1.1.0 がリリースされました。バージョン 1.1.0 にはこれらの commit が含まれています。
バージョン 1.1.0-rc01
2025 年 9 月 10 日
androidx.graphics:graphics-*:1.1.0-rc01 がリリースされました。バージョン 1.1.0-rc01 にはこれらの commit が含まれています。
バージョン 1.1.0-beta01
2025 年 7 月 30 日
androidx.graphics:graphics-*:1.1.0-beta01 がリリースされました。バージョン 1.1.0-beta01 にはこれらの commit が含まれています。
API の変更
- Kotlin 2.0 でリリースされたプロジェクトを使用するには、KGP 2.0.0 以降が必要です(Idb6b5)
mingwX64、js、wasm のコンパイル ターゲットを追加します。(I2c46a)
バージョン 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を作成できるようになりました。フィーチャーは主に Cubic ベジエ曲線の一覧ですが、モーフィング アルゴリズムが開始シェイプと終了シェイプを一致させるのに役立つタグが付けられています(凸状の角は凸状の角に、凹状の角は凹状の角にマッピングされます)。(I61e76)、(I1fc5c) watchosDeviceArm64KMP ターゲットとターゲット kotlin 1.9 のサポートを追加しました。(Icf15d、b/364652024)
バグの修正
- 最後の特徴が空の場合のエッジケースを修正しました。(I390dd)
RoundedPolygonの作成をより堅牢にします。(Ib862c、b/360888486)RoundedPolygonの初期化に関するバグを修正しました。(I83ddb)- ポリゴンの中心を推定するアルゴリズムのエラーを修正しました。(Ida147)
Graphics Shapes バージョン 1.0
バージョン 1.0.1
2024 年 9 月 4 日
androidx.graphics:graphics-shapes:1.0.1、androidx.graphics:graphics-shapes-android:1.0.1、androidx.graphics:graphics-shapes-desktop:1.0.1 がリリースされました。バージョン 1.0.1 にはこれらの commit が含まれています。
バージョン 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(以前の境界は、基盤となるベジエ曲線アンカーと制御点に基づく推定値にすぎませんでした)と、可能な最大境界を計算する新しい 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 コードなど)から呼び出しやすくなります。たとえば、API には、以前の PointF、Matrix、Path などの Android 型はありません。
- パフォーマンス上の理由から、API と実装にもいくつかの変更が加えられました。特に、オブジェクトの割り当て(と収集)を最小限に抑えるための変更です。たとえば、PointF から個別の Float パラメータに移行することで、頂点を保持するために多くの一時的な PointF 構造体を割り当てることを回避できます。
API の変更
Morph.asMutableCubicsをMutableCubicsを反復処理する関数に置き換えました。PointTransformer関数型インターフェースが変更され、Pointの x 座標と y 座標を受け取り、TransformedResult(変換された x 座標と y 座標で構築される)を返すようになりました(I6719e)- パブリック
Cubicコンストラクタを削除し、ファクトリ関数にしました。(I409ce) - Android 固有の変換 API と描画 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値を受け取るようになりました。これは既存の半径パラメータと同じ単位であるため、シンプルで一貫性のあるものになります。また、内半径と外半径の両方に同じ数値が適用されることを明確にするため、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 の範囲で設定でき、開始シェイプと終了シェイプの間でアニメーション化できます。その進行状況を時間とともにアニメーション化し、すべてのフレームで結果を描画して、新しい丸みを帯びた図形間のスムーズなアニメーションを作成します。
Graphics Path バージョン 1.0
バージョン 1.1.0-alpha01
2025 年 8 月 13 日
androidx.graphics:graphics-path:1.1.0-alpha01 がリリースされました。バージョン 1.1.0-alpha01 にはこれらの commit が含まれています。
バグの修正
- 円錐曲線から二次曲線への変換の実装を追加し、ホスト プラットフォームで使用します。f059b1
バージョン 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 については、こちらをご覧ください。
新機能
- この新しいライブラリでは、新しい
PathIteratorAPI を介して Path データのクエリを実行できます。この API を使用すると、呼び出し元は Path オブジェクトのすべてのセグメントを反復処理して、それらのセグメントのオペレーションとデータを特定できます。 - このライブラリは、Android 14 プレビューで導入された同様の API を使用しますが、この AndroidX バージョンの API は API 21 まで遡って機能します。
Graphics Core バージョン 1.0
バージョン 1.0.3
2025 年 3 月 26 日
androidx.graphics:graphics-core:1.0.3 がリリースされました。バージョン 1.0.3 にはこれらの commit が含まれています。
バグの修正
- API<33 の一部のデバイスで描画中に全画面がちらつく問題を修正。
バージョン 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 については、こちらをご覧ください。
新機能
- View 階層内で Android の 2D グラフィック API(Canvas + Paint)による低レイテンシ レンダリングをサポートする新しい
LowLatencyCanvasViewAPI を導入しました。 HardwareBufferへのハードウェア アクセラレーション キャンバス レンダリングをサポートするCanvasBufferedRendererAPI を導入しました。これは、Bitmap.wrapHardwareBufferAPI を使用して Bitmap に変換できるバッファにユーザー インターフェースの一部を描画するために使用できます。
API の変更
- オプションのフェンス パラメータを持つように
CanvasBufferRenderer#releaseBufferAPI を更新しました。RenderResult#fenceが返されるタイミングについて説明するようにドキュメントを更新しました。(If1ea7) - コルーチンを活用して描画リクエストをスケジュール設定できるよう、
drawメソッドをRenderRequestに追加しました。エグゼキュータを使用する以前の描画メソッドの名前をdrawAsyncに変更しました。isClosed()メソッドをプロパティにリファクタリングしました。(I5bff6) - バッファ形式パラメータを
CanvasFrontBufferRendererに公開してCanvasBufferedRenderer.Builder#setBufferFormatに直接マッピング(I0f272) - ハードウェア アクセラレーテッド キャンバス レンダリングを
HardwareBufferに処理するCanvasBufferedRendererAPI を作成しました。これにより、スワップチェーンの深さHardwareBuffersの構成とともに、Android Q に移植された実装が提供されます。ColorSpace構成は Android U+ に限定されますが、互換性実装はデベロッパーに代わって no-op 動作を提供します。(I9b1d8) setFrameRate/clearFrameRateAPI をSurfaceControlCompat.Transactionに追加して、シームレスまたはデフォルトのトランジションの変更戦略とともにフレームレートを制御します。(I6045c)setDataSpaceの必須 API レベルを Android T から Android Q に引き下げました。(I59c34)- バッファが提示されなくなったときにコンシューマーが状態をクリーンアップできるように、
GLFrameBufferRendererAPI にonBufferReleasedコールバックを追加しました(I8a4e2) - View 階層のレンダリングと同期される低レイテンシのコンテンツ レンダリングというシンプルなユースケースをサポートするために、
LowLatencyCanvasViewを作成します。これにより、同期された低レイテンシ レンダリングのために、画面上で変換されるSurfaceViewインスタンスを内部で管理することで、SurfaceView管理に伴う複雑さを軽減します。(I9253b) CanvasFrontBufferedRendererAPI にカラースペース構成のサポートを追加しました。マルチバッファ コールバックを更新して、バックバッファSurfaceControlも含めるようにしました(I24bd9)
バージョン 1.0.0-alpha05
2023 年 9 月 6 日
androidx.graphics:graphics-core:1.0.0-alpha05 がリリースされました。バージョン 1.0.0-alpha05 に含まれる commit については、こちらをご覧ください。
新機能
GLFrameBufferRendererAPI を導入しました。これにより、OpenGL の依存関係、スワップ チェーン構成、ピクセル形式、SurfaceControl構成の組み合わせが提供されます。(Ic775b)
API の変更
SurfaceHolder#Callbacksからディメンションをパイプ処理するために、さまざまなコールバック API に幅と高さのパラメータを追加しました。(I7f9fc)- フロント レイヤとマルチ バッファ レイヤの両方をクリアするクリア API を追加しました。(Ic1f95)
GLFrontBufferedRenderer内で使用されるスワップチェーンの基盤となるバッファタイプを設定するサポートを追加しました。(I07a13)GLFrameBufferRenderer、最大バッファ エントリのIntRangeアノテーション、setFormat/setUsageのHardwareBufferFormartアノテーションとHardwareBufferUsageアノテーションのゲッターの Kotlin プロパティを追加しました。(Ief89e)SurfaceControlトランザクションのsetBufferAPI を更新して、リリース フェンスを提供しました。(Ice1bb)- データ空間を構成し、拡張輝度範囲を設定する
SurfaceControlCompat.TransactionAPI を追加しました。(Ic378d)
バージョン 1.0.0-alpha04
2023 年 6 月 7 日
androidx.graphics:graphics-core:1.0.0-alpha04 がリリースされました。バージョン 1.0.0-alpha04 に含まれる commit については、こちらをご覧ください。
新機能
- 既存の OpenGL 実装とともに
android.graphics.CanvasAPI を活用して低レイテンシのグラフィックをサポートするCanvasFrontBufferedRendererを導入
API の変更
- 対応するプラットフォーム API を反映するため、null 許容の
HardwareBufferインスタンスを許可するようにSurfaceControlCompat.Transaction#setBufferAPI を更新(I173d7) - バッキング スワップチェーンに 2 つ以上のバッファが含まれている可能性があるため、ダブル バッファ レンダリングを参照するメソッドの名前をマルチ バッファに変更します。(I830d7)
- Canvas API を使用して、サードパーティがフロント バッファリング レンダリング システムを活用できるようにする
CanvasFrontBufferedRendererAPI を作成します。(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コールバックの実装を更新して、バッファの幅と高さを含む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パッケージに移動 SyncFenceAPI の名前をSyncFenceV19に変更し、非公開にしました。これにより、可能な限りフレームワークのSyncFenceAPI を活用するSyncFenceCompatに使用法が統合されます。(I5149c)
GLFrontBufferedRenderer#cancelメソッドとGLFrontBufferedRenderer#executeメソッドを追加しました。前者は、フロント バッファへのレンダリングをキャンセルしてフロント バッファを非表示にする必要があるパーム リジェクションのシナリオで役立ちます。後者は、レンダリングをスケジュールすることなく GL スレッドでオブジェクトを操作するシナリオで役立ちます。(If0b7f)- ダブル バッファリングされたレイヤに直接レンダリングする API を追加。これにより、再開後にシーンを再レンダリングできるほか、コンシューマーがレンダリングするシーンに基づいてフロント バッファリング レンダリングを動的に利用するタイミングを選択的に決定できるようになります。(Ied56c)
SurfaceControlCompat.Builderに新しい API が追加され、SurfaceViewからの既存のメカニズムに加えて、別のSurfaceControlインスタンスから親SurfaceControlを構成できるようになりました。(I1d1b6)- 非推奨になった非表示関数の戻り値の型の null 可能性を拡大しました。(Ibf7b0)
EGL_ANDROID_get_native_client_buffer拡張機能定数を追加しました。これにより、Android デバイスがHardwareBufferインスタンスをEGLImageインスタンスとして使用できるEGLClientBufferオブジェクトにインポートすることをサポートしているかどうかを照会できます。(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を導入しました。このクラスは、前面およびマルチバッファのレンダリングを補助し、低レイテンシかつ高品質のレンダリング出力を実現します。GLRendererAPI を導入しました。この API は、SurfaceViewやTextureViewなどのさまざまなサーフェス プロバイダで OpenGL レンダリングを補助します。