Partager via


ID2D1RenderTarget ::CreateCompatibleRenderTarget(D2D1_SIZE_F,ID2D1BitmapRenderTarget**) méthode (d2d1.h)

Crée une cible de rendu bitmap à utiliser pendant le dessin hors écran intermédiaire compatible avec la cible de rendu actuelle.

Syntaxe

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

Paramètres

desiredSize

Type : [in] D2D1_SIZE_F

Taille souhaitée de la nouvelle cible de rendu en pixels indépendants de l’appareil. La taille des pixels est calculée à partir de la taille souhaitée à l’aide du ppp cible parent. Si le iredSize est mappé à une taille de pixels entiers, l’ppp de la cible de rendu compatible est identique à celui de la cible parente. Si iredSize mappe à une taille de pixel fractionnaire, la taille du pixel est arrondie à l’entier le plus proche et le DPI de la cible de rendu compatible est légèrement plus élevé que le DPI de la cible de rendu parente. Dans tous les cas, la coordonnée (desiredSize.width, desiredSize.height) correspond au coin inférieur droit de la cible de rendu compatible.

bitmapRenderTarget

Type : [out] ID2D1BitmapRenderTarget**

Lorsque cette méthode retourne, contient un pointeur vers un pointeur vers une nouvelle cible de rendu bitmap. Ce paramètre est passé non initialisé.

Valeur de retour

Type : HRESULT

Si cette méthode réussit, elle retourne S_OK. Sinon, elle retourne un code d’erreur HRESULT.

Remarques

La cible de rendu bitmap créée par cette méthode n’est pas compatible avec GDI.

Exemples

L’exemple suivant utilise la méthode CreateCompatibleRenderTarget pour créer un ID2D1BitmapRenderTarget et l’utilise pour dessiner un modèle de grille. Le modèle de grille est utilisé comme source d’un 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;
}

L’exemple de code suivant utilise le pinceau pour peindre un motif.

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

Le code a été omis de cet exemple.

Exigences

Exigence Valeur
client minimum pris en charge Windows 7, Windows Vista avec SP2 et Mise à jour de plateforme pour Windows Vista [applications de bureau | Applications UWP]
serveur minimum pris en charge Windows Server 2008 R2, Windows Server 2008 avec SP2 et Mise à jour de plateforme pour Windows Server 2008 [applications de bureau | Applications UWP]
plateforme cible Windows
d’en-tête d2d1.h
bibliothèque D2d1.lib
DLL D2d1.dll

Voir aussi

ID2D1RenderTarget

formats de pixels pris en charge et les modes alpha