ID2D1Factory::CreateTransformedGeometry(ID2D1Geometry*,constD2D1_MATRIX_3X2_F*,ID2D1TransformedGeometry**) メソッド (d2d1.h)
指定したジオメトリを変換し、結果を ID2D1TransformedGeometry オブジェクトとして格納します。
構文
HRESULT CreateTransformedGeometry(
ID2D1Geometry *sourceGeometry,
const D2D1_MATRIX_3X2_F *transform,
ID2D1TransformedGeometry **transformedGeometry
);
パラメーター
sourceGeometry
型: [in] ID2D1Geometry*
変換するジオメトリ。
transform
型: [in] const D2D1_MATRIX_3X2_F*
適用する変換。
transformedGeometry
種類: [out] ID2D1TransformedGeometry**
このメソッドが戻るときに、 には、変換された新しい geometry オブジェクトへのポインターのアドレスが格納されます。 変換されたジオメトリは、変換によって sourceGeometry を変換した結果を格納します。
戻り値
型: HRESULT
このメソッドは、成功すると S_OK を返します。 それ以外の場合は、 HRESULT エラー コードが返されます。
注釈
他のリソースと同様に、変換されたジオメトリは、それを作成したファクトリのリソース領域とスレッド ポリシーを継承します。 このオブジェクトは不変です。
DrawGeometry メソッドを使用して変換されたジオメトリをストロークする場合、ストローク幅はジオメトリに適用される変換の影響を受けません。 ストロークの幅は、ワールド変換の影響を受けるだけです。
例
次の例では、 ID2D1RectangleGeometry を作成し、変換せずに描画します。 次の図に示す出力が生成されます。
hr = m_pD2DFactory->CreateRectangleGeometry(
D2D1::RectF(150.f, 150.f, 200.f, 200.f),
&m_pRectangleGeometry
);
次の例では、レンダー ターゲットを使用してジオメトリを 3 倍にスケーリングし、描画します。 次の図は、変換なしで、変換を使用して四角形を描画した結果を示しています。では、ストロークの太さが 1 であっても、変換後にストロークが太くなります。
// Transform the render target, then draw the rectangle geometry again.
m_pRenderTarget->SetTransform(
D2D1::Matrix3x2F::Scale(
D2D1::SizeF(3.f, 3.f),
D2D1::Point2F(175.f, 175.f))
);
m_pRenderTarget->DrawGeometry(m_pRectangleGeometry, m_pBlackBrush, 1);
次の例では、 CreateTransformedGeometry メソッドを使用してジオメトリを 3 倍にスケーリングし、描画します。 次の図に示す出力が生成されます。 四角形は大きくなりますが、ストロークは増加していません。
// Create a geometry that is a scaled version
// of m_pRectangleGeometry.
// The new geometry is scaled by a factory of 3
// from the center of the geometry, (35, 35).
hr = m_pD2DFactory->CreateTransformedGeometry(
m_pRectangleGeometry,
D2D1::Matrix3x2F::Scale(
D2D1::SizeF(3.f, 3.f),
D2D1::Point2F(175.f, 175.f)),
&m_pTransformedGeometry
);
// Replace the previous render target transform.
m_pRenderTarget->SetTransform(D2D1::Matrix3x2F::Identity());
// Draw the transformed geometry.
m_pRenderTarget->DrawGeometry(m_pTransformedGeometry, m_pBlackBrush, 1);
要件
要件 | 値 |
---|---|
対象プラットフォーム | Windows |
ヘッダー | d2d1.h |
Library | D2d1.lib |
[DLL] | D2d1.dll |