ID2D1Factory インターフェイス
Direct2D リソースを作成します。
実装するタイミング
カスタム実装はサポートされません。
メンバー
ID2D1Factory インターフェイス の継承元は次のとおりです: IUnknown インターフェイス. ID2D1Factory は次のメンバーも定義します:
- メソッド
メソッド
ID2D1Factory インターフェイス は次の項目を定義します: メソッド.
メソッド | 説明 |
---|---|
CreateDCRenderTarget | Windows グラフィックス デバイス インターフェイス (GDI) デバイス コンテキストに描画するレンダー ターゲットを作成します。 |
CreateDrawingStateBlock | レンダー ターゲットの SaveDrawingState メソッドおよび RestoreDrawingState メソッドで使用できる ID2D1DrawingStateBlock を作成します (オーバーロードは 3 つ)。 |
CreateDxgiSurfaceRenderTarget | DirectX Graphics Infrastructure (DXGI) サーフェイスに描画するレンダー ターゲットを作成します (オーバーロードは 2 つ)。 |
CreateEllipseGeometry | ID2D1EllipseGeometry を作成します (オーバーロードは 2 つ)。 |
CreateGeometryGroup | 他のジオメトリを保持するオブジェクトである ID2D1GeometryGroup を作成します。 |
CreateHwndRenderTarget | ウィンドウにレンダリングするレンダー ターゲットである ID2D1HwndRenderTarget を作成します (オーバーロードは 2 つ)。 |
CreatePathGeometry | 空の ID2D1PathGeometry を作成します。 |
CreateRectangleGeometry | ID2D1RectangleGeometry を作成します (オーバーロードは 2 つ)。 |
CreateRoundedRectangleGeometry | ID2D1RoundedRectangleGeometry を作成します (オーバーロードは 2 つ)。 |
CreateStrokeStyle | ストロークの開始点、破線パターン、およびその他の機能を記述する ID2D1StrokeStyle を作成します (オーバーロードは 2 つ)。 |
CreateTransformedGeometry | 指定されたジオメトリを変換し、その結果を ID2D1TransformedGeometry オブジェクトとして格納します (オーバーロードは 2 つ)。 |
CreateWicBitmapRenderTarget | Microsoft Windows Imaging Component (WIC) ビットマップにレンダリングするレンダー ターゲットを作成します (オーバーロードは 2 つ)。 |
GetDesktopDpi | 現在のデスクトップの DPI (1 インチあたりのドット数) を取得します。この値を更新するには、ReloadSystemMetrics を呼び出します。 |
ReloadSystemMetrics | ファクトリの作成後に変更された可能性のあるシステムの既定値を更新するよう、ファクトリに強制します。 |
解説
ID2D1Factory インターフェイスは、Direct2D を使用するための開始点です。つまり、このインターフェイスを使用して、図形の描画または記述に使用できる他の Direct2D リソースを作成します。
ファクトリは、次の描画リソースを生成できる一連の CreateResource メソッドを定義します。
- レンダー ターゲット: 描画コマンドをレンダリングするオブジェクト。
- 描画状態ブロック: 現在の変換やアンチエイリアシング モードなど、描画状態情報を格納するオブジェクト。
- ジオメトリ: 単純な図形や場合によっては複雑な図形を表すオブジェクト。
ID2D1Factory を作成するには、CreateFactory メソッドのいずれかを使用します。Direct2D リソースを使用している間は、ID2D1Factory インスタンスを保持しておく必要があります。そのため、通常、アプリケーションが実行されているときにそのインスタンスを再作成する必要はありません。Direct2D リソースの詳細については、「リソースの概要」を参照してください。
シングルスレッド ファクトリとマルチスレッド ファクトリ
ファクトリを作成する際に、マルチスレッドにするかシングルスレッドにするかを指定できます。シングルスレッド ファクトリでは、Direct2D 内の他のシングルスレッド インスタンスに対してシリアル化が行われないため、このメカニズムでは、CPU に対して大規模なスケーリングが行われます。
マルチスレッド ファクトリ インスタンスを作成することもできます。この場合、ファクトリおよびすべての派生オブジェクトはどのスレッドからも使用でき、各レンダー ターゲットを独自にレンダリングできます。Direct2D では、このようなオブジェクトの呼び出しがシリアル化されるため、1 つのマルチスレッド Direct2D インスタンスでは、複数のシングルスレッド インスタンスのように CPU に対してスケーリングが行われません。ただし、リソースはマルチスレッド インスタンス内で共有できます。
"CPU に対して" という点に注意してください。通常、GPU では、CPU よりもきめ細かな並列処理が利用されます。たとえば、CPU からのマルチスレッド呼び出しは、GPU に送信される際にシリアル化される場合があります。ただし、一連のピクセル シェーダーおよび頂点シェーダーは、レンダリングを実行するために並列で実行されます。
例
次のコードの抜粋では、ファクトリ ポインターを宣言して、シングルスレッド ファクトリ インスタンスを作成し、ファクトリを使用してレンダー ターゲットを作成します。
ID2D1Factory* m_pDirect2dFactory;
// Create a Direct2D factory.
hr = D2D1CreateFactory(D2D1_FACTORY_TYPE_SINGLE_THREADED, &m_pDirect2dFactory);
// Create a Direct2D render target.
hr = m_pDirect2dFactory->CreateHwndRenderTarget(
D2D1::RenderTargetProperties(),
D2D1::HwndRenderTargetProperties(m_hwnd, size),
&m_pRenderTarget
);
完全なコードについては、「四角形を描画する例」を参照してください。
要件
クライアントの最小要件 |
Windows 7, Windows Vista SP2 および Windows Vista 用のプラットフォーム更新プログラム |
サーバーの最小要件 |
Windows Server 2008 R2, Windows Server 2008 SP2 および Windows Server 2008 用のプラットフォーム更新プログラム |
ヘッダー |
D2d1.h |
ライブラリ |
D2d1.lib |
DLL |
D2d1.dll |