ID2D1Device
COM公式ドキュメント
オブジェクトとデバイスコンテキストを一緒に使用できるリソースドメインを表します。(ID2D1Device)
メソッド 5
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
Direct2D デバイスから新しいデバイスコンテキストを作成します。
| options | D2D1_DEVICE_CONTEXT_OPTIONS | in | 作成するデバイスコンテキストに適用するオプション。 |
| deviceContext | ID2D1DeviceContext** | out | このメソッドが戻るとき、新しいデバイスコンテキストへのポインターのアドレスが格納されます。 |
戻り値
Type: HRESULT
メソッドが成功した場合は S_OK を返します。失敗した場合は HRESULT エラーコードを返します。
解説(Remarks)
新しいデバイスコンテキストにはターゲットビットマップが選択されていません。呼び出し元は、コンテキストのターゲットサーフェスとなるビットマップを作成して選択する必要があります。
| wicFactory | IWICImagingFactory* | in | 印刷処理に用いるWICイメージングファクトリへのポインタ。 |
| documentTarget | IPrintDocumentPackageTarget* | in | 出力先となる印刷ドキュメントパッケージターゲットへのポインタ。 |
| printControlProperties | D2D1_PRINT_CONTROL_PROPERTIES* | inoptional | ラスタライズDPIや色空間などの印刷制御属性。NULL可で既定値。 |
| printControl | ID2D1PrintControl** | out | 作成された印刷コントロールを受け取る出力ポインタ。 |
Direct2D がイメージキャッシュおよびキャッシュされたテクスチャ割り当てを消去する前に蓄積するテクスチャメモリの最大量を設定します。(ID2D1Device.SetMaximumTextureMemory)
| maximumInBytes | ULONGLONG | in | 新しいテクスチャメモリの最大量(バイト単位)。 |
解説(Remarks)
Direct2D がイメージキャッシュおよびキャッシュされたテクスチャ割り当てを消去する前に蓄積するテクスチャメモリの最大量を取得します。(ID2D1Device.GetMaximumTextureMemory)
戻り値
Type: UINT64
テクスチャメモリの最大量(バイト単位)。
Direct2D が使用するすべてのレンダリングリソースをクリアします。
| millisecondsSinceUse | DWORD | in | 指定した時間(ミリ秒)を超えて使用されていないリソースのみを破棄します。既定値は 0 ミリ秒です。 |
戻り値
Type: HRESULT
関数が成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_ID2D1Device "{47DD575D-AC05-4CDD-8049-9B02CD16F44C}" #usecom global ID2D1Device IID_ID2D1Device "{}" #comfunc global ID2D1Device_CreateDeviceContext 4 int,sptr #comfunc global ID2D1Device_CreatePrintControl 5 sptr,sptr,var,sptr #comfunc global ID2D1Device_SetMaximumTextureMemory 6 int64 #comfunc global ID2D1Device_GetMaximumTextureMemory 7 #comfunc global ID2D1Device_ClearResources 8 int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_ID2D1Device "{47DD575D-AC05-4CDD-8049-9B02CD16F44C}" #usecom global ID2D1Device IID_ID2D1Device "{}" #comfunc global ID2D1Device_CreateDeviceContext 4 int,sptr #comfunc global ID2D1Device_CreatePrintControl 5 sptr,sptr,sptr,sptr #comfunc global ID2D1Device_SetMaximumTextureMemory 6 int64 #comfunc global ID2D1Device_GetMaximumTextureMemory 7 #comfunc global ID2D1Device_ClearResources 8 int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。