グラフィック

  
複数の Android プラットフォーム リリースでグラフィック機能を利用します

androidx.graphics グループ内のすべてのアーティファクトのリストを以下に示します。

アーティファクト 安定版リリース リリース候補版 ベータ版リリース アルファ版リリース
graphics-core 1.0.2 - - -
graphics-path 1.0.1 - - -
graphics-shapes 1.0.1 - - 1.1.0-alpha01
このライブラリの最終更新日: 2024 年 12 月 11 日

依存関係の宣言

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 のみを行う必要があります。(I9bd00b/371196190)、(Ic3842)、(If68ed)、(I10251
  • ポリゴン対象物と対象物タイプを公開します。List<Features> を受け取るベース コンストラクタを使用して、より汎用性の高い RoundedPolygons を作成できるようになりました。特徴は主に 3 次ベジェ曲線のリストですが、モーフィング アルゴリズムが開始形状と終了形状を一致させるようにタグ付けされています(凸角は凸角にマッピングされ、凹角は凹角にマッピングされます)。(I61e76)、(I1fc5c
  • watchosDeviceArm64 KMP ターゲットとターゲット Kotlin 1.9 のサポートを追加しました。(Icf15db/364652024

バグの修正

  • 最後の特徴が空の場合のエグジット ケースを修正しました。(I390dd
  • RoundedPolygon の作成をより堅牢にします。(Ib862cb/360888486
  • RoundedPolygon の初期化に関するバグを修正しました。(I83ddb
  • 多角形の中心を推定するアルゴリズムのエラーを修正しました。(Ida147

Graphics Shapes バージョン 1.0

バージョン 1.0.0

2024 年 8 月 21 日

androidx.graphics:graphics-shapes:1.0.0androidx.graphics:graphics-shapes-android:1.0.0androidx.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-rc01androidx.graphics:graphics-shapes-android:1.0.0-rc01androidx.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-beta01androidx.graphics:graphics-shapes-android:1.0.0-beta01androidx.graphics:graphics-shapes-desktop:1.0.0-beta01 がリリースされました。バージョン 1.0.0-beta01 には、これらの commit が含まれています。

API の変更

  • シェイプを事前に回転して、別のポイントから開始できるようにします。この変更により、pillStar シェイプの曲線を境界のデフォルト以外のポイントから開始できるようになりました。これは、シェイプのパスのストロークアニメーションで、シェイプの輪郭の特定の位置から描画を開始する場合に便利です。(Ifbb4db/324303807
  • Morph に calculateBounds() 関数を追加しました。これは、RoundedPolygon の同じ関数と並行して動作します。(I8a3b6b/325463575

バージョン 1.0.0-alpha05

2024 年 2 月 7 日

androidx.graphics:graphics-shapes:1.0.0-alpha05androidx.graphics:graphics-shapes-android:1.0.0-alpha05androidx.graphics:graphics-shapes-desktop:1.0.0-alpha05 がリリースされました。バージョン 1.0.0-alpha05 に含まれる commit については、こちらをご覧ください

新機能

  • このライブラリに、丸い形や星形のシェイプを簡単に作成できる新しい pill() 関数と pillStar() 関数が追加されました。また、シェイプに必要な正確な境界(以前の境界は、基盤となるベジェ曲線のアンカーとコントロール ポイントに基づく推定値にすぎませんでした)と、可能な最大境界を計算するための新しい API もあります。これは、シェイプをそのコンテナ内で回転させる場合に、シェイプを保持するコンテナのサイズを決定するのに役立ちます。(I71827

API の変更

  • 正確な境界と最大境界を取得するためのオプションが増えました。(I6d49fb/317286450

バグの修正

  • 長さがゼロの曲線に関連する低レベルのレンダリングの問題により、これらのシェイプをストローク パスとして描画する際に、レンダリング アーティファクトが発生することがありました。このバグは、長さがゼロの曲線をすべて削除することで修正されました(形状では不要なため、形状によって生成されるパスのオーバーヘッドも削減されます)。

バージョン 1.0.0-alpha04

2023 年 12 月 13 日

androidx.graphics:graphics-shapes:1.0.0-alpha04androidx.graphics:graphics-shapes-android:1.0.0-alpha04androidx.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 を追加しました。(I079f6b/292289543
  • Android の依存関係を排除しました。(Iadc1cb/292289543
  • アンカーとコントロールのプロパティ名がよりわかりやすくなりました。(If13bdb/294562941
  • PointF パラメータを Float ペアに変更しました。(Id4705b/276466399b/290254314
  • progressMorph 描画コマンドに直接渡されるようになりました。(Icdca2

バグの修正

  • 大きなシェイプを作成する際のバグを修正しました。(I4fd66b/313497325

バージョン 1.0.0-alpha03

2023 年 6 月 7 日

androidx.graphics:graphics-shapes:1.0.0-alpha03 がリリースされました。バージョン 1.0.0-alpha03 に含まれる commit については、こちらをご覧ください

API の変更

  • 新しい RoundedPolygon.rectangle() 関数を追加しました。(I78e7eb/280322189
  • Star 関数と Circle 関数は、大文字と小文字が区別されなくなり、RoundedPolygon のコンパニオン オブジェクトを介して呼び出されるようになります(例: RoundedPolygon.star(...)I14735

バグの修正

  • スムージングに関するバグを修正しました。(Ibf894
  • 開始シェイプと終了シェイプが同じ場合に発生するバグを修正しました。カットのために側面の使用可能なスペースをより適切に分散します。まず、使用可能なスペースを丸めるために使用し、残りのスペースがある場合はスムージングに使用します。(Ibd320b/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 の使用を削除しました。(Ie9117b/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/setUsageHardwareBufferFormart アノテーションと 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
  • FrameBufferRendererSyncStrategy のドキュメントを追加しました。
    • FrameBufferRendererFrameBufferFrameBufferPoolandroidx.graphics.opengl パッケージに移動しました
    • SyncStrategyandroidx.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 で導入された addTransactionCommitListenerRequiresApi アノテーションが欠落する問題を修正しました(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 は、SurfaceViewTextureView などのさまざまなサーフェス プロバイダで OpenGL レンダリングを補助します。