はじめに
前提条件
Vegaアプリは、Vega SDKを通じてこのパッケージを使用できます。 Vega SDKのインストール方法については、Vega SDKのセットアップを参照してください。セットアップ
Vegaグラフィックスターボモジュールは、kepler-graphics npmパッケージによって提供されます。package.jsonファイルのdependenciesセクションに、以下のライブラリ依存関係を追加します。
パーミッション
ディスプレイAPIは、get系メソッドとset系メソッドの両方で構成されています。DisplayManagerクラスを通じてset系メソッドを使用するアプリの場合、以下に示すように、アプリのmanifest.tomlファイルの [needs] セクションで、セキュリティ権限com.amazon.graphics.privilege.display.managerを指定する必要があります。
com.amazon.graphics.privilege.display.managerを含めると、以下の操作が可能になります。
- 現在の画面解像度とリフレッシュレートを、サポートされているいずれかの値に変更する。
- 色深度、色形式、HDRモード、ALLMなど、ほかのディスプレイプロパティを変更する。
使用方法
以下は、サポート対象のユースケースのリストです。- ディスプレイのホットプラグイベントをリッスンする。
- ディスプレイのサポート対象画面解像度(幅×高さ)とリフレッシュレートを照会する。
- ディスプレイのサポート対象HDRタイプ/伝達関数、最大HDCPレベル、画面密度(DPI)を照会する。
- ディスプレイの現在アクティブな画面解像度、リフレッシュレート、色深度、色形式、HDRモード、低遅延モード(ALLM)を照会する。
- ディスプレイプロパティの変更イベントをリッスンする。
必要なコンポーネントのインポート
VegaグラフィックスAPIを使用するには、@amazon-devices/kepler-graphicsから必要なコンポーネントをインポートします。
以下に示すように、インターフェイスとタイプをソースコードファイルのkepler-graphicsパッケージからインポートします。
ディスプレイの状態の確認
ディスプレイがデバイスに接続されているかどうかを確認するには、以下のメソッドを使用します。ディスプレイのホットプラグイベント
ディスプレイパネルが接続または接続解除されたときに、コールバックイベントを取得します。IDisplayControllerListener.onAddDisplay()とIDisplayControllerListener.onRemoveDisplay()コールバックメソッドは、以下に示すようなイベントを提供します。
現在の画面解像度とリフレッシュレートの取得
Display.getCurrentConfig()メソッドは、現在アクティブな構成をIDisplayConfigオブジェクトとして返します。IDisplayConfigオブジェクトのメンバーは、画面解像度(幅×高さ)、画面密度、サポートされるリフレッシュレートなどの情報を提供します。
HDRサポートの確認
次のサンプルコードは、ディスプレイとデバイスがHDRをサポートしているかどうかを確認する方法を示しています。Display.getAllSupportedConfigs()で取得されるほかのディスプレイ構成に、ほかのHDRタイプが含まれる場合があります。それらのHDRタイプを使用できるのは、DisplayManager.requestConfigChange()メソッドを使用して、現在のアクティブな構成を特定のHDRタイプ用のディスプレイ構成に変更した場合のみです。
ほかのディスプレイプロパティの照会
変更イベントのリッスン
次のコード例は、アプリがIDisplayListenerコールバックインターフェイスを使用して以下に対する変更をリッスンできることを示しています。
- 表示プロパティ(画面解像度など)
- リフレッシュレート、色深度/色空間
- HDCPレベル
- HDRモード
- 低遅延モード
よくある質問(FAQ)
Q1:ディスプレイでサポートされているHDRタイプがIDisplayConfig.supportedHdrType配列に含まれていないのはなぜですか?
メソッドの実装では、サポートされているタイプを報告する際に、ディスプレイプロパティだけでなく、デバイスの機能も考慮されます。デバイスが「ドルビービジョン」などの特定のHDRタイプをサポートしていない場合、IDisplayConfig.supportedHdrTypeによって報告されるリストにはそのタイプが含まれません。
Q2:リスナーコールバックの登録を解除するにはどうすればよいですか?
Display.addDisplayListener()メソッドとDisplayController.addListener()メソッドは、ISubscriptionオブジェクトを返します。リスナーの登録を解除するオブジェクトを使用するには、unsubscribe()メソッドを呼び出します。以下のコード例を参照してください。
Q3:supportedHdrTypeが次のような複数の重複した値を返すのはなぜですか?
HdrType.NONEに相当します。
APIリファレンス
クラス
- Display - プライマリディスプレイのプロパティを取得するクラス。
- DisplayController - DisplayController固有の操作はこれによって実行されます。
- DisplayManager - ディスプレイの構成/設定を変更するためのAPIが用意されています。
インターフェイス
- IDisplayConfig
- IDisplayControllerListener - DisplayControllerイベントのリスナーインターフェイス。
- IDisplayListener - さまざまなディスプレイイベントのリスナーインターフェイス。
- IDisplayManagerListener - DisplayManagerイベントのリスナーインターフェイス。
- IOverscanBorder - オーバースキャンボーダーデータを処理するインターフェイス。
- ISubscription - リスナーを登録解除するためのインターフェイス。
列挙型
- AisrState - 表示用のAI解像度復元の状態値を定義します。
- BufferPixelFormat - データを保存するために使用されるメモリレイアウトとビットを指定します。
- ColorDepth - ディスプレイで表示可能なすべての色深度を定義します。
- ColorGamut - 色域タイプのリストを定義します。
- ColorSpace - ディスプレイのさまざまな色空間タイプを定義します。
- HdcpLevel - ディスプレイがサポートできるすべてのHDCPレベルを定義します。
- HdrMode - ディスプレイのハイダイナミックレンジモードの値を定義します
- HdrType - サポートされている基盤となるHDRテクノロジーのリストを定義します。
- LlmState - ディスプレイがサポートできるすべての低遅延モード(LLM)状態を定義します。
- TransferFunction - ディスプレイ伝達関数のリストを定義します。

