次の方法で共有


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

参照

Direct2D - はじめに

Direct2D クイックスタート

Direct2D について

リソースの概要