Win32 API 日本語リファレンス
ホームGraphics.Direct3D12 › ID3D12DeviceFactory

ID3D12DeviceFactory

COM
IID61f307d3-d34e-4e7c-8374-3ba4de23cccb継承元IUnknown自前メソッド開始 vtbl3

メソッド 7

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT InitializeFromGlobalState()
vtbl 4 HRESULT ApplyToGlobalState()
vtbl 5 HRESULT SetFlags(D3D12_DEVICE_FACTORY_FLAGS flags)
flagsD3D12_DEVICE_FACTORY_FLAGSinデバイス生成時の挙動を制御するD3D12_DEVICE_FACTORY_FLAGS列挙のフラグ値。
vtbl 6 D3D12_DEVICE_FACTORY_FLAGS GetFlags()
vtbl 7 HRESULT GetConfigurationInterface(GUID* clsid, GUID* iid, void** ppv)
clsidGUID*in取得する構成オブジェクトのクラスIDを示すGUIDへのポインター。
iidGUID*in取得するインターフェイスのGUIDへのポインター。
ppvvoid**out取得した構成インターフェイスを受け取る出力ポインター。
vtbl 8 HRESULT EnableExperimentalFeatures(DWORD NumFeatures, GUID* pIIDs, void* pConfigurationStructs, DWORD* pConfigurationStructSizes)
NumFeaturesDWORDin有効化する実験的機能の数を示すDWORD値。
pIIDsGUID*in有効化する各機能を識別するGUIDの配列へのポインター。
pConfigurationStructsvoid*inoptional各機能の構成データ配列へのポインター。不要な場合はNULL可。
pConfigurationStructSizesDWORD*inoptional各構成構造体のバイトサイズ配列へのポインター。NULL可。
vtbl 9 HRESULT CreateDevice(IUnknown* adapter, D3D_FEATURE_LEVEL FeatureLevel, GUID* riid, void** ppvDevice)
adapterIUnknown*inoptionalデバイスを作成する対象アダプターのIUnknownポインター。NULLで既定アダプターを使用する。
FeatureLevelD3D_FEATURE_LEVELin要求する最小機能レベルを示すD3D_FEATURE_LEVEL列挙値。
riidGUID*in取得するデバイスインターフェイスのGUIDへのポインター。
ppvDevicevoid**outoptional生成されたデバイスインターフェイスを受け取る出力ポインター。NULLで生成可否のみ確認する。

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_ID3D12DeviceFactory "{61F307D3-D34E-4E7C-8374-3BA4DE23CCCB}"
#usecom global ID3D12DeviceFactory IID_ID3D12DeviceFactory "{114863BF-C386-4AEE-B39D-8F0BBB062955}"
#comfunc global ID3D12DeviceFactory_InitializeFromGlobalState   3
#comfunc global ID3D12DeviceFactory_ApplyToGlobalState          4
#comfunc global ID3D12DeviceFactory_SetFlags                    5 int
#comfunc global ID3D12DeviceFactory_GetFlags                    6
#comfunc global ID3D12DeviceFactory_GetConfigurationInterface   7 var,var,sptr
#comfunc global ID3D12DeviceFactory_EnableExperimentalFeatures  8 int,var,sptr,var
#comfunc global ID3D12DeviceFactory_CreateDevice                9 sptr,int,var,sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。