ホーム › Graphics.Direct2D › ID2D1Mesh
ID2D1Mesh
COM公式ドキュメント
三角形のリストを形成する頂点の集合を表します。
解説(Remarks)
ID2D1Mesh オブジェクトの作成
メッシュを作成するには、そのメッシュを使用するレンダーターゲットに対して ID2D1RenderTarget::CreateMesh メソッドを呼び出します。メッシュは、それを作成したレンダーターゲット、およびそのレンダーターゲットと互換性のあるターゲットでのみ使用できます。メッシュはデバイス依存のリソースです。アプリケーションは、メッシュを使用するレンダーターゲットを初期化した後にメッシュを作成し、レンダーターゲットの再作成が必要になったときにはメッシュも再作成する必要があります。(リソースの詳細については、Resources Overview を参照してください。)
例
次のコード例は、三角形のリストを形成する頂点の集合を表すために ID2D1Mesh を使用する方法を示します。
ID2D1GeometrySink *pGeometrySink = NULL;
hr = pPathGeometry->Open(&pGeometrySink);
if (SUCCEEDED(hr))
{
hr = pGeometry->Widen(
strokeWidth,
pIStrokeStyle,
pWorldTransform,
pGeometrySink
);
if (SUCCEEDED(hr))
{
hr = pGeometrySink->Close();
if (SUCCEEDED(hr))
{
ID2D1Mesh *pMesh = NULL;
hr = m_pRT->CreateMesh(&pMesh);
if (SUCCEEDED(hr))
{
ID2D1TessellationSink *pSink = NULL;
hr = pMesh->Open(&pSink);
if (SUCCEEDED(hr))
{
hr = pPathGeometry->Tessellate(
NULL, // world transform (already handled in Widen)
pSink
);
if (SUCCEEDED(hr))
{
hr = pSink->Close();
if (SUCCEEDED(hr))
{
SafeReplace(&m_pStrokeMesh, pMesh);
}
}
pSink->Release();
}
pMesh->Release();
}
}
}
pGeometrySink->Release();
}
pPathGeometry->Release();
メソッド 1
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 4 HRESULT Open(ID2D1TessellationSink** tessellationSink)
メッシュにデータを設定するために開きます。
| tessellationSink | ID2D1TessellationSink** | out | このメソッドが返るとき、メッシュにデータを設定するために使用される ID2D1TessellationSink へのポインターへのポインターが格納されます。このパラメーターは初期化されていない状態で渡されます。 |
戻り値
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_ID2D1Mesh "{2CD906C2-12E2-11DC-9FED-001143A055F9}"
#usecom global ID2D1Mesh IID_ID2D1Mesh "{}"
#comfunc global ID2D1Mesh_Open 4 sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。