Metodo ID2D1DeviceContext::SetTarget (d2d1_1.h)
Elenco di comandi o bitmap a cui verrà eseguito il rendering del contesto del dispositivo Direct2D .
Sintassi
void SetTarget(
[in, optional] ID2D1Image *image
);
Parametri
[in, optional] image
Tipo: ID2D1Image*
Elenco di comandi o superficie a cui verrà eseguito il rendering del contesto del dispositivo Direct2D.
Valore restituito
nessuno
Osservazioni
La destinazione può essere modificata in qualsiasi momento, incluso mentre il contesto è di disegno.
La destinazione può essere una bitmap creata con il flag D2D1_BITMAP_OPTIONS_TARGET oppure può essere un elenco di comandi. Altri tipi di immagini non possono essere impostati come destinazione. Ad esempio, non è possibile impostare l'output di un effetto come destinazione. Se la destinazione non è valida, il contesto immetterà lo stato di errore D2DERR_INVALID_TARGET .
Non è possibile usare SetTarget per eseguire il rendering in un elenco bitmap/comando da più contesti di dispositivo contemporaneamente. Un'immagine viene considerata "sottoposta a rendering" se è mai stata impostata in un contesto di dispositivo all'interno di un timepan BeginDraw EndDraw/. Se viene eseguito un tentativo di rendering in un'immagine tramite più contesti del dispositivo, tutti i contesti del dispositivo successivi dopo il primo immetteranno uno stato di errore.
I chiamanti che desiderano collegare un'immagine a un secondo contesto del dispositivo devono prima chiamare EndDraw nel primo contesto del dispositivo.
Ecco un esempio dell'ordine di chiamata corretto.
pDC1->BeginDraw();
pDC1->SetTarget(pImage);
// …
pDC1->EndDraw();
pDC2->BeginDraw();
pDC2->SetTarget(pImage);
// …
pDC2->EndDraw();
Ecco un esempio dell'ordine di chiamata non corretto.
pDC1->BeginDraw();
pDC2->BeginDraw();
pDC1->SetTarget(pImage);
// ...
pDC1->SetTarget(NULL);
pDC2->SetTarget(pImage); // This call is invalid, even though pImage is no longer set on pDC1.
// ...
pDC1->EndDraw(); // This EndDraw SUCCEEDs.
pDC2->EndDraw(); // This EndDraw FAILs
È accettabile avere un limite bitmap come bitmap di destinazione in più destinazioni di rendering contemporaneamente. Le applicazioni che eseguono questa operazione devono sincronizzare correttamente il rendering con Flush o EndDraw.
È possibile modificare la destinazione in qualsiasi momento, incluso mentre il contesto è di disegno.
È possibile impostare la destinazione su NULL, in cui le chiamate di disegno inserisce il contesto del dispositivo in uno stato di errore con D2DERR_WRONG_STATE. La chiamata a SetTarget con una destinazione NULL non ripristina la bitmap di destinazione originale nel contesto del dispositivo.
Se il contesto del dispositivo ha un HDC in sospeso, il contesto immetterà lo stato di errore D2DERR_WRONG_STATE . La destinazione non verrà modificata.
Se la bitmap e il contesto del dispositivo non si trovano nello stesso dominio di risorse, il contesto immetterà \ lo stato di errore. La destinazione non verrà modificata.
ID2D1RenderTarget::GetPixelSize restituisce le dimensioni della bitmap di destinazione corrente (o 0, 0) se non è presente alcun limite bitmap. ID2D1RenderTarget::GetSize restituisce le dimensioni dei pixel della bitmap corrente ridimensionata da DPI della destinazione di rendering. SetTarget non influisce sulla DPI della destinazione di rendering.
ID2D1RenderTarget::GetPixelFormat restituisce il formato pixel della bitmap di destinazione corrente (o DXGI_FORMAT_UNKNOWN, D2D1_ALPHA_MODE_UNKNOWN se non è presente alcuno).
ID2D1Bitmap::CopyFromRenderTarget copia dalla bitmap di destinazione attualmente associata.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 8 e Aggiornamento della piattaforma per Windows 7 [app desktop | App UWP] |
Server minimo supportato | Windows Server 2012 e Aggiornamento della piattaforma per Windows Server 2008 R2 [app desktop | App UWP] |
Piattaforma di destinazione | Windows |
Intestazione | d2d1_1.h |
DLL | D2d1.dll |