インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス
インテル® グラフィックス・テクノロジー・ランタイムの内部イメージ・オブジェクトを作成/破棄します。このトピックは、インテル® グラフィックス・テクノロジーをターゲットとする場合にのみ適用されます。
C++ インターフェイス: テンプレートとコンストラクター
template <class T> class GfxImage2D: GfxImage2D(T * ptr, size_t height, size_t width, int format = 0) template <class T> class GfxSharedImage2D: GfxSharedImage2D(T * ptr, size_t height, size_t width, int format = 0)
C インターフェイス: コンストラクター
GfxResourceHandle _GFX_create_image_2d (void * ptr, size_t element_size, size_t height, size_t width, int format, int flags);
C インターフェイス: デストラクター
int _GFX_close_resource_handle(GfxResourceHandle handle);
ptr |
ホストデータ (共有またはコピーされる 2D イメージ) へのポインター |
||||
element_size |
各要素のサイズ (バイト)。この引数は C バージョンでのみ利用できます。C++ バージョンでは、テンプレートで要素のサイズを指定します。 |
||||
height |
イメージの高さ (行数) |
||||
width |
イメージの幅 (要素数) |
||||
format |
イメージのピクセル形式。 format = 0 の場合、ランタイムは指定されたサイズのデータ要素をビット単位で完全に表現できる最適な形式を選択します。 その他の値は、システムのビデオレイヤー (Windows* 8 では DirectX* 11、Windows* 7 では DirectX* 9) に依存します。 |
||||
flags |
イメージ・オブジェクトの追加のプロパティーを示すビット・マスク。次の値がサポートされています。
|
||||
handle |
_GFX_create_image_2d によって返される内部イメージ・オブジェクトへのハンドル |
C++ クラスのコンストラクターまたは C 形式の _GFX_create_image_2d 関数により、インテル® グラフィックス・テクノロジー・ランタイムの内部イメージ・オブジェクトを作成します。
内部イメージ・オブジェクトは、少なくとも次のいずれかの状態になるまで有効です。
GfxImage2D / GfxSharedImage2D (C++ バージョン) のデストラクターまたは _GFX_close_resource_handle (C バージョン) が呼び出された場合
イメージを使用している、または使用する可能性のあるアクティブなカーネルが存在しない場合
つまり、イメージのライフタイム管理はランタイムに任せて、簡潔で直感的なユーザーコードを記述することができます。
GfxSharedImage2D はホストとターゲット間で 2D イメージを共有します。GfxImage2D はターゲット側でのみ 2D イメージを保持します。
2D イメージを共有する場合、ホストとターゲットのメモリーを同期する読み取り/書き込み操作は不要ですが、ターゲット側でタイル化によるメモリーアクセスの最適化は行われません。一方、ターゲットで 2D イメージを保持する場合、ターゲット側では 2D イメージに効率良くアクセスできますが、オフロードタスクの実行前後にデータ転送が発生します。共有イメージ GfxSharedImage2D を使用する場合、ホスト側のメモリーはページ境界 (4096 バイト) でアライメントされていなければなりません。メモリーが適切にアライメントされていないと、ターゲットイメージが作成され、GfxSharedImage2D が GfxImage2D のように動作します。
以下の戻り値は C バージョンにのみ適用されます。
_GFX_create_image_2d の場合:
NULL |
エラーが発生しました。 |
内部イメージ・オブジェクトへの NULL 以外のハンドル |
関数の実行に成功しました。 |
C++ バージョンの GfxImage2D オブジェクトまたは GfxSharedImage2D オブジェクトは、GfxResourceHandle メンバーのみを持つ C++ 形式のハンドルホルダー GfxImage2DBase から継承されます。
_GFX_close_resource_handle の場合:
GFX_SUCCESS (0) |
関数の実行に成功しました。 |
非ゼロのエラーコード |
エラーが発生しました。_GFX_get_last_error() 関数を使用してエラーコードを取得してください。各種エラーステータス値は、gfx_rt.h で定義されています。 |