다음을 통해 공유


ID2D1RenderTarget::CreateCompatibleRenderTarget 메서드

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

오버로드 목록

메서드 설명
CreateCompatibleRenderTarget(D2D1_SIZE_F,D2D1_SIZE_U,D2D1_PIXEL_FORMAT,D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS,ID2D1BitmapRenderTarget**) 현재 렌더링 대상과 호환되는 중간 오프스크린 그리기 중에 사용할 비트맵 렌더링 대상을 만듭니다.
CreateCompatibleRenderTarget(D2D1_SIZE_F*,D2D1_SIZE_U*,D2D1_PIXEL_FORMAT*,D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS,ID2D1BitmapRenderTarget**) 현재 렌더링 대상과 호환되는 중간 오프스크린 그리기 중에 사용할 비트맵 렌더링 대상을 만듭니다.
CreateCompatibleRenderTarget(ID2D1BitmapRenderTarget**) 현재 렌더링 대상과 호환되고 현재 렌더링 대상과 크기, DPI 및 픽셀 형식(알파 모드는 아님)을 갖는 중간 오프스크린 그리기 중에 사용할 새 비트맵 렌더링 대상을 만듭니다.
CreateCompatibleRenderTarget(D2D1_SIZE_F,ID2D1BitmapRenderTarget**) 현재 렌더링 대상과 호환되고 현재 렌더링 대상과 동일한 픽셀 형식(알파 모드는 아님)을 갖는 중간 오프스크린 그리기 중에 사용할 새 비트맵 렌더링 대상을 만듭니다.
CreateCompatibleRenderTarget(D2D1_SIZE_F,D2D1_SIZE_U,ID2D1BitmapRenderTarget**) 현재 렌더링 대상과 호환되는 중간 화면 오프 스크린 그리기 중에 사용할 비트맵 렌더링 대상을 만듭니다. 새 비트맵 렌더링 대상은 현재 렌더링 대상과 동일한 픽셀 형식(알파 모드는 아님)을 가집니다.
CreateCompatibleRenderTarget(D2D1_SIZE_F,D2D1_SIZE_U,D2D1_PIXEL_FORMAT,ID2D1BitmapRenderTarget**) 현재 렌더링 대상과 호환되는 중간 오프스크린 그리기 중에 사용할 비트맵 렌더링 대상을 만듭니다.

예제

다음 예제에서는 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
    );

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

요구 사항

요구 사항
헤더
D2d1.h
라이브러리
D2d1.lib
DLL
D2d1.dll

추가 정보

ID2D1RenderTarget