ホーム › Graphics.Direct3D11 › ID3D11Device1
ID3D11Device1
COMメソッド 7
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 43 void GetImmediateContext1(ID3D11DeviceContext1** ppImmediateContext)
| ppImmediateContext | ID3D11DeviceContext1** | out | ID3D11DeviceContext1版の即時コンテキストを受け取る。参照カウント増。 |
vtbl 44 HRESULT CreateDeferredContext1(DWORD ContextFlags, ID3D11DeviceContext1** ppDeferredContext)
| ContextFlags | DWORD | in | 予約フラグ。0を指定する。 |
| ppDeferredContext | ID3D11DeviceContext1** | outoptional | ID3D11DeviceContext1版の遅延コンテキストを受け取る。 |
vtbl 45 HRESULT CreateBlendState1(D3D11_BLEND_DESC1* pBlendStateDesc, ID3D11BlendState1** ppBlendState)
| pBlendStateDesc | D3D11_BLEND_DESC1* | in | 拡張ブレンドステート記述(D3D11_BLEND_DESC1)。 |
| ppBlendState | ID3D11BlendState1** | outoptional | 生成されたブレンドステートを受け取る。 |
vtbl 46 HRESULT CreateRasterizerState1(D3D11_RASTERIZER_DESC1* pRasterizerDesc, ID3D11RasterizerState1** ppRasterizerState)
| pRasterizerDesc | D3D11_RASTERIZER_DESC1* | in | 拡張ラスタライザ記述(D3D11_RASTERIZER_DESC1)。 |
| ppRasterizerState | ID3D11RasterizerState1** | outoptional | 生成されたステートを受け取る。 |
vtbl 47 HRESULT CreateDeviceContextState(DWORD Flags, D3D_FEATURE_LEVEL* pFeatureLevels, DWORD FeatureLevels, DWORD SDKVersion, GUID* EmulatedInterface, D3D_FEATURE_LEVEL* pChosenFeatureLevel, ID3DDeviceContextState** ppContextState)
| Flags | DWORD | in | 生成フラグ(シングルスレッド等)。0可。 |
| pFeatureLevels | D3D_FEATURE_LEVEL* | in | 希望する機能レベルの配列(降順)。 |
| FeatureLevels | DWORD | in | 機能レベル配列の要素数。 |
| SDKVersion | DWORD | in | SDKバージョン(D3D11_SDK_VERSION)。 |
| EmulatedInterface | GUID* | in | エミュレートするデバイスインターフェイスのGUID。 |
| pChosenFeatureLevel | D3D_FEATURE_LEVEL* | outoptional | 選択された機能レベルを受け取る。NULL可。 |
| ppContextState | ID3DDeviceContextState** | outoptional | 生成された状態オブジェクトを受け取る。NULL可。 |
| hResource | HANDLE | in | 共有リソースのNTハンドル。 |
| returnedInterface | GUID* | in | 取得するインターフェイスのGUID。 |
| ppResource | void** | out | 開いたリソースを受け取る。 |
vtbl 49 HRESULT OpenSharedResourceByName(LPWSTR lpName, DWORD dwDesiredAccess, GUID* returnedInterface, void** ppResource)
| lpName | LPWSTR | in | 共有リソースの名前。 |
| dwDesiredAccess | DWORD | in | 要求するアクセス権(DXGI_SHARED_RESOURCE_*)。 |
| returnedInterface | GUID* | in | 取得するインターフェイスのGUID。 |
| ppResource | void** | out | 開いたリソースを受け取る。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_ID3D11Device1 "{A04BFB29-08EF-43D6-A49C-A9BDBDCBE686}" #usecom global ID3D11Device1 IID_ID3D11Device1 "{}" #comfunc global ID3D11Device1_GetImmediateContext1 43 sptr #comfunc global ID3D11Device1_CreateDeferredContext1 44 int,sptr #comfunc global ID3D11Device1_CreateBlendState1 45 var,sptr #comfunc global ID3D11Device1_CreateRasterizerState1 46 var,sptr #comfunc global ID3D11Device1_CreateDeviceContextState 47 int,var,int,int,var,var,sptr #comfunc global ID3D11Device1_OpenSharedResource1 48 sptr,var,sptr #comfunc global ID3D11Device1_OpenSharedResourceByName 49 wstr,int,var,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_ID3D11Device1 "{A04BFB29-08EF-43D6-A49C-A9BDBDCBE686}" #usecom global ID3D11Device1 IID_ID3D11Device1 "{}" #comfunc global ID3D11Device1_GetImmediateContext1 43 sptr #comfunc global ID3D11Device1_CreateDeferredContext1 44 int,sptr #comfunc global ID3D11Device1_CreateBlendState1 45 sptr,sptr #comfunc global ID3D11Device1_CreateRasterizerState1 46 sptr,sptr #comfunc global ID3D11Device1_CreateDeviceContextState 47 int,sptr,int,int,sptr,sptr,sptr #comfunc global ID3D11Device1_OpenSharedResource1 48 sptr,sptr,sptr #comfunc global ID3D11Device1_OpenSharedResourceByName 49 wstr,int,sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。