ID2D1DeviceContext::CreateImageBrush(ID2D1Image*,constD2D1_IMAGE_BRUSH_PROPERTIES&,constD2D1_BRUSH_PROPERTIES&,ID2D1ImageBrush**) メソッド (d2d1_1.h)

イメージ ブラシを作成します。 入力イメージには、ビットマップ、効果、コマンド リストなど、任意の種類のイメージを指定できます。

構文

HRESULT CreateImageBrush(
  [in]                ID2D1Image                          *image,
  [in, ref]           const D2D1_IMAGE_BRUSH_PROPERTIES & imageBrushProperties,
  [in, ref, optional] const D2D1_BRUSH_PROPERTIES &       brushProperties,
  [out]               ID2D1ImageBrush                     **imageBrush
);

パラメーター

[in] image

種類: ID2D1Image*

イメージ ブラシのソースとして使用するイメージ。

[in, ref] imageBrushProperties

型: const D2D1_IMAGE_BRUSH_PROPERTIES

イメージ ブラシに固有のプロパティ。

[in, ref, optional] brushProperties

型: const D2D1_BRUSH_PROPERTIES

すべてのブラシに共通のプロパティ。

[out] imageBrush

種類: ID2D1ImageBrush**

このメソッドから制御が戻るときに、入力四角形へのポインターのアドレスが格納されます。

戻り値

型: HRESULT

このメソッドは HRESULT を返します。 有効な値を次の表に示しますが、これ以外にもあります。

HRESULT 説明
S_OK エラーは発生していません。
E_OUTOFMEMORY Direct2D は、呼び出しを完了するのに十分なメモリを割り当てませんでした。
E_INVALIDARG 無効な値が メソッドに渡されました。

注釈

イメージ ブラシを使用して、任意のジオメトリ、不透明度マスク、またはテキストを塗りつぶすことができます。

このサンプルでは、イメージ ブラシを使用して四角形を描画する方法を示します。

HRESULT
CreatePatternBrush(
     __in ID2D1DeviceContext *pDeviceContext,
     __deref_out ID2D1ImageBrush **ppImageBrush
     )
{
    HRESULT hr = S_OK;
    ID2D1Image *pOldTarget = NULL;
    pDeviceContext->GetTarget(&pOldTarget);

    ID2D1CommandList *pCommandList = NULL;
    hr = pDeviceContext->CreateCommandList(&pCommandList);
     
    if (SUCCEEDED(hr))
    {   
        pDeviceContext->SetTarget(pCommandList);
        hr = RenderPatternToCommandList(pDeviceContext);
    }

    pDeviceContext->SetTarget(pOldTarget);

    ID2D1ImageBrush *pImageBrush = NULL;

    if (SUCCEEDED(hr))
    {        
         hr = pDeviceContext->CreateImageBrush(
            pCommandList,
            D2D1::ImageBrushProperties(
                D2D1::RectF(198, 298, 370, 470),
                D2D1_EXTEND_MODE_WRAP,
                D2D1_EXTEND_MODE_WRAP,
                D2D1_INTERPOLATION_MODE_LINEAR
                ),
            &pImageBrush
            );
    }
    
    // Fill a rectangle with the image brush.
    if (SUCCEEDED(hr))
    {
        pDeviceContext->FillRectangle(
            D2D1::RectF(0, 0, 100, 100), pImageBrush);
    }

    SafeRelease(&pImageBrush);
    SafeRelease(&pCommandList);
    SafeRelease(&pOldTarget);
    return hr;
}

要件

要件
サポートされている最小のクライアント Windows 7 のWindows 8とプラットフォーム更新プログラム [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー Windows Server 2008 R2 のWindows Server 2012とプラットフォーム更新プログラム [デスクトップ アプリ |UWP アプリ]
対象プラットフォーム Windows
ヘッダー d2d1_1.h
[DLL] D2d1.dll

こちらもご覧ください

D2D1_BRUSH_PROPERTIES

D2D1_IMAGE_BRUSH_PROPERTIES

ID2D1DeviceContext

ID2D1DeviceContext::CreateCommandList

ID2D1DeviceContext::CreateEffect

ID2D1RenderTarget::D rawGeometry

ID2D1RenderTarget::FillGeometry