ID2D1RenderTarget::CreateCompatibleRenderTarget(D2D1_SIZE_F,ID2D1BitmapRenderTarget**) 메서드(d2d1.h)

현재 렌더링 대상과 호환되는 중간 오프스크린 그리기 중에 사용할 비트맵 렌더링 대상을 만듭니다.

구문

HRESULT CreateCompatibleRenderTarget(
  D2D1_SIZE_F             desiredSize,
  ID2D1BitmapRenderTarget **bitmapRenderTarget
);

매개 변수

desiredSize

형식: [in] D2D1_SIZE_F

디바이스 독립적 픽셀에서 새 렌더링 대상의 원하는 크기입니다. 픽셀 크기는 부모 대상 DPI를 사용하여 원하는 크기에서 계산됩니다. desiredSize가 정수 픽셀 크기에 매핑되는 경우 호환되는 렌더링 대상의 DPI는 부모 대상의 DPI와 동일합니다. desiredSize가 소수 픽셀 크기에 매핑되는 경우 픽셀 크기는 가장 가까운 정수로 반올림되고 호환되는 렌더링 대상의 DPI는 부모 렌더링 대상의 DPI보다 약간 높습니다. 모든 경우에 좌표(desiredSize.width, desiredSize.height)는 호환되는 렌더링 대상의 오른쪽 아래 모서리에 매핑됩니다.

bitmapRenderTarget

형식: [out] ID2D1BitmapRenderTarget**

이 메서드가 반환되면 새 비트맵 렌더링 대상에 대한 포인터에 대한 포인터가 포함됩니다. 이 매개 변수는 초기화되지 않은 상태로 전달됩니다.

반환 값

형식: HRESULT

메서드가 성공하면 S_OK를 반환하고, 그렇지 않으면 HRESULT 오류 코드를 반환합니다.

설명

이 메서드에서 만든 비트맵 렌더링 대상은 GDI와 호환되지 않습니다.

예제

다음 예제에서는 CreateCompatibleRenderTarget 메서드를 사용하여 ID2D1BitmapRenderTarget 을 만들고 이를 사용하여 그리드 패턴을 그립니다. 그리드 패턴은 ID2D1BitmapBrush의 원본으로 사용됩니다.

HRESULT DemoApp::CreateGridPatternBrush(
    ID2D1RenderTarget *pRenderTarget,
    ID2D1BitmapBrush **ppBitmapBrush
    )
{
    // Create a compatible render target.
    ID2D1BitmapRenderTarget *pCompatibleRenderTarget = NULL;
    HRESULT hr = pRenderTarget->CreateCompatibleRenderTarget(
        D2D1::SizeF(10.0f, 10.0f),
        &pCompatibleRenderTarget
        );
    if (SUCCEEDED(hr))
    {
        // Draw a pattern.
        ID2D1SolidColorBrush *pGridBrush = NULL;
        hr = pCompatibleRenderTarget->CreateSolidColorBrush(
            D2D1::ColorF(D2D1::ColorF(0.93f, 0.94f, 0.96f, 1.0f)),
            &pGridBrush
            );
        if (SUCCEEDED(hr))
        {
            pCompatibleRenderTarget->BeginDraw();
            pCompatibleRenderTarget->FillRectangle(D2D1::RectF(0.0f, 0.0f, 10.0f, 1.0f), pGridBrush);
            pCompatibleRenderTarget->FillRectangle(D2D1::RectF(0.0f, 0.1f, 1.0f, 10.0f), pGridBrush);
            pCompatibleRenderTarget->EndDraw();

            // Retrieve the bitmap from the render target.
            ID2D1Bitmap *pGridBitmap = NULL;
            hr = pCompatibleRenderTarget->GetBitmap(&pGridBitmap);
            if (SUCCEEDED(hr))
            {
                // Choose the tiling mode for the bitmap brush.
                D2D1_BITMAP_BRUSH_PROPERTIES brushProperties =
                    D2D1::BitmapBrushProperties(D2D1_EXTEND_MODE_WRAP, D2D1_EXTEND_MODE_WRAP);

                // Create the bitmap brush.
                hr = m_pRenderTarget->CreateBitmapBrush(pGridBitmap, brushProperties, ppBitmapBrush);

                pGridBitmap->Release();
            }

            pGridBrush->Release();
        }

        pCompatibleRenderTarget->Release();
    }

    return hr;
}

다음 코드 예제에서는 브러시를 사용하여 패턴을 그립니다.

// Paint a grid background.
m_pRenderTarget->FillRectangle(
    D2D1::RectF(0.0f, 0.0f, renderTargetSize.width, renderTargetSize.height),
    m_pGridPatternBitmapBrush
    );

이 예제에서는 코드를 생략합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 7, Windows Vista SP2 및 Windows Vista용 플랫폼 업데이트가 포함된 Windows Vista [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows Server 2008 R2, Windows Server 2008 SP2 및 Windows Server 2008용 플랫폼 업데이트 [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 d2d1.h
라이브러리 D2d1.lib
DLL D2d1.dll

추가 정보

ID2D1RenderTarget

지원되는 픽셀 형식 및 알파 모드