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

ID2D1Device1

COM
IIDd21768e1-23a4-4823-a14b-7c3eba85d658継承元ID2D1Device自前メソッド開始 vtbl9

公式ドキュメント

オブジェクトとデバイスコンテキストを一緒に使用できるリソースドメインを表します。(ID2D1Device1)

メソッド 3

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

vtbl 9 D2D1_RENDERING_PRIORITY GetRenderingPriority()

デバイスの現在のレンダリング優先度を取得します。

戻り値

Type: D2D1_RENDERING_PRIORITY

デバイスの現在のレンダリング優先度。

vtbl 10 void SetRenderingPriority(D2D1_RENDERING_PRIORITY renderingPriority)

デバイスに関連付けられた任意のデバイスコンテキストで実行される Direct2D レンダリング操作の優先度を設定します。

renderingPriorityD2D1_RENDERING_PRIORITYinデバイスおよび関連するコンテキストに設定するレンダリング優先度。

戻り値

Type: HRESULT

このメソッドは HRESULT を返します。取り得る値には、次の表に示すものが含まれますが、これらに限定されません。

HRESULT Description
S_OK エラーは発生しませんでした。
E_OUTOFMEMORY Direct2D が呼び出しを完了するのに十分なメモリを割り当てられませんでした。
E_INVALIDARG 戻り値を返す関数に無効なパラメーターが渡されました。

解説(Remarks)

このメソッドを呼び出すと、デバイスに関連付けられたすべてのデバイスコンテキストのレンダリング優先度に影響します。このメソッドはいつでも呼び出せますが、次のフレームの開始まで効果が反映されることは保証されません。推奨される使用方法は、BeginDrawEndDraw のブロックの外側でこのメソッドを呼び出すことです。描画ブロック内でこのプロパティを頻繁に切り替えると、適用されているスロットリングの利点が実質的に損なわれます。

vtbl 11 HRESULT CreateDeviceContext(D2D1_DEVICE_CONTEXT_OPTIONS options, ID2D1DeviceContext1** deviceContext1)
optionsD2D1_DEVICE_CONTEXT_OPTIONSinデバイスコンテキスト生成時のオプションフラグを指定する列挙値。
deviceContext1ID2D1DeviceContext1**out生成されたデバイスコンテキストを受け取る出力ポインター。
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

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

#define global IID_ID2D1Device1 "{D21768E1-23A4-4823-A14B-7C3EBA85D658}"
#usecom global ID2D1Device1 IID_ID2D1Device1 "{}"
#comfunc global ID2D1Device1_GetRenderingPriority  9
#comfunc global ID2D1Device1_SetRenderingPriority  10 int
#comfunc global ID2D1Device1_CreateDeviceContext   11 int,sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。