次の方法で共有


D3DX11CompileFromMemory 関数

注意

D3DX (D3DX 9、D3DX 10、D3DX 11) ユーティリティ ライブラリは、Windows 8では非推奨であり、Windows ストア アプリではサポートされていません。

注意

この関数を使用する代わりに、Fxc.exeコマンド ライン コンパイラを使用してオフラインでコンパイルするか、 D3DCompile API のような HLSL コンパイル API のいずれかを使用することをお勧めします。

シェーダーまたはメモリに読み込まれる効果をコンパイルします。

構文

HRESULT D3DX11CompileFromMemory(
  _In_        LPCSTR             pSrcData,
  _In_        SIZE_T             SrcDataLen,
  _In_        LPCSTR             pFileName,
  _In_  const D3D10_SHADER_MACRO *pDefines,
  _In_        LPD3D10INCLUDE     pInclude,
  _In_        LPCSTR             pFunctionName,
  _In_        LPCSTR             pProfile,
  _In_        UINT               Flags1,
  _In_        UINT               Flags2,
  _In_        ID3DX11ThreadPump  *pPump,
  _Out_       ID3D10Blob         **ppShader,
  _Out_       ID3D10Blob         **ppErrorMsgs,
  _Out_       HRESULT            *pHResult
);

パラメーター

pSrcData [in]

種類: LPCSTR

メモリ内のシェーダーへのポインター。

SrcDataLen [in]

種類: SIZE_T

メモリ内のシェーダーのサイズ。

pFileName [in]

種類: LPCSTR

シェーダー コードを含むファイルの名前。

pDefines [in]

型: const D3D10_SHADER_MACRO*

省略可能。 マクロ定義の配列へのポインター ( 「D3D10_SHADER_MACRO」を参照)。 配列内の最後の構造体はターミネータとして機能し、すべてのメンバーを 0 に設定する必要があります。 使用しない場合は、 pDefinesNULL に設定します。

pInclude [in]

種類: LPD3D10INCLUDE

省略可能。 インクルード ファイルを処理するためのインターフェイスへのポインター。 これを NULL に設定すると、シェーダーに#includeが含まれている場合、コンパイル エラーが発生します。

pFunctionName [in]

種類: LPCSTR

シェーダーの実行が開始されるシェーダー エントリ ポイント関数の名前。 効果をコンパイルすると、D3DX11CompileFromMemorypFunctionName を無視します。呼び出された関数で使用されない場合は、ポインター パラメーターを NULL に設定することをお勧めします。pFunctionNameNULL に設定することをお勧めします。

pProfile [in]

種類: LPCSTR

シェーダー モデルを指定する文字列。には、シェーダー モデル 2、シェーダー モデル 3、シェーダー モデル 4、またはシェーダー モデル 5 の任意のプロファイルを指定できます。 プロファイルは、効果の種類 (たとえば、fx_4_1) の場合もあります。

Flags1 [in]

型: UINT

シェーダー コンパイル フラグ

Flags2 [in]

型: UINT

効果 コンパイル フラグ。 効果ファイルではなくシェーダーをコンパイルすると、 D3DX11CompileFromMemoryFlags2 を無視します。 Flags2 を 0 に設定することをお勧めします。呼び出された関数で使用されない場合は、非ポイント パラメーターを 0 に設定することをお勧めします。

pPump [in]

種類: ID3DX11ThreadPump*

スレッド ポンプ インターフェイスへのポインター ( ID3DX11ThreadPump インターフェイスを参照)。 この関数が完了するまでこの関数が返されないように指定するには 、NULL を 使用します。

ppShader [out]

種類: ID3D10Blob**

コンパイルされたシェーダーと、埋め込まれたデバッグとシンボル テーブルの情報を含むメモリへのポインター。

ppErrorMsgs [out]

種類: ID3D10Blob**

コンパイル中に発生したエラーと警告の一覧を含むメモリへのポインター。 これらのエラーと警告は、デバッガーからのデバッグ出力と同じです。

pHResult [out]

型: HRESULT*

戻り値へのポインター。 NULL を指定できます。 pPumpNULL でない場合、pHResult は非同期実行が完了するまで有効なメモリの場所である必要があります。

戻り値

型: HRESULT

戻り値は、「 Direct3D 11 リターン コード」に記載されている値の 1 つです。

pPump パラメーターに NULL を指定するときに pHResult パラメーターに NULL 以外を指定した場合、D3DX11CompileFromMemory はE_INVALIDARGを返します。 この状況の詳細については、「解説」を参照してください。

注釈

D3DX11CompileFromMemory の詳細については、「D3DCompile」を参照してください。

pPump パラメーターにも NULL を指定する場合は、pHResult パラメーターに NULL を指定する必要があります。 それ以外の場合は、その後、ppShader パラメーターが指すメモリ内で D3DX11CompileFromMemory が返すコンパイル済みシェーダー コードを使用してシェーダーを作成することはできません。 準拠したシェーダー コードからシェーダーを作成するには、次のいずれかの ID3D11Device インターフェイス メソッドを呼び出します。

さらに、pPumpNULL を指定するときに pHResult に NULL 以外の値を指定すると、D3DX11CompileFromMemory はE_INVALIDARGエラー コードを返します。

要件

要件
ヘッダー
D3DX11async.h
ライブラリ
D3DX11.lib

こちらもご覧ください

D3DX 関数