Método ID2D1DeviceContext::SetTarget (d2d1_1.h)

Mapa de bits o lista de comandos en la que ahora se representará el contexto del dispositivo Direct2D .

Sintaxis

void SetTarget(
  [in, optional] ID2D1Image *image
);

Parámetros

[in, optional] image

Tipo: ID2D1Image*

La lista de comandos o superficie en la que se representará el contexto del dispositivo Direct2D.

Valor devuelto

None

Observaciones

El destino se puede cambiar en cualquier momento, incluido mientras se dibuja el contexto.

El destino puede ser un mapa de bits creado con la marca D2D1_BITMAP_OPTIONS_TARGET o puede ser una lista de comandos. No se pueden establecer otros tipos de imágenes como destino. Por ejemplo, no puede establecer la salida de un efecto como destino. Si el destino no es válido, el contexto entrará en el estado de error D2DERR_INVALID_TARGET .

No se puede usar SetTarget para representar en una lista de mapas de bits o comandos desde varios contextos de dispositivo simultáneamente. Una imagen se considera "representarse en" si alguna vez se ha establecido en un contexto de dispositivo dentro de un intervalo de tiempo de BeginDraw EndDraw/. Si se intenta representar en una imagen a través de varios contextos de dispositivo, todos los contextos de dispositivo posteriores después del primero entrarán en un estado de error.

Los autores de llamadas que deseen adjuntar una imagen a un segundo contexto de dispositivo deben llamar primero a EndDraw en el primer contexto del dispositivo.

Este es un ejemplo del orden de llamada correcto.

pDC1->BeginDraw();
pDC1->SetTarget(pImage);
// …
pDC1->EndDraw();

pDC2->BeginDraw();
pDC2->SetTarget(pImage);
// …
pDC2->EndDraw();

Este es un ejemplo del orden de llamada incorrecto.

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


Nota Cambiar el destino no cambia el mapa de bits desde el que se presenta un destino de representación de HWND, ni cambia el mapa de bits desde el que un controlador de dominio representa los blts de destino hacia o desde.
 
Esta API facilita el uso de un mapa de bits como origen (como drawBitmap) y como destino al mismo tiempo. Al intentar usar un mapa de bits como origen en el mismo contexto de dispositivo al que está enlazado como destino, el contexto del dispositivo se colocará en el estado de error D2DERR_BITMAP_BOUND_AS_TARGET.

Es aceptable tener un mapa de bits enlazado como mapa de bits de destino en varios destinos de representación a la vez. Las aplicaciones que lo hacen deben sincronizar correctamente la representación con Flush o EndDraw.

Puede cambiar el destino en cualquier momento, incluido mientras se dibuja el contexto.

Puede establecer el destino en NULL, en cuyo caso las llamadas de dibujo colocarán el contexto del dispositivo en un estado de error con D2DERR_WRONG_STATE. Al llamar a SetTarget con un destino NULL, no se restaura el mapa de bits de destino original en el contexto del dispositivo.

Si el contexto del dispositivo tiene una HDC pendiente, el contexto escribirá el estado de error D2DERR_WRONG_STATE . El destino no se cambiará.

Si el mapa de bits y el contexto del dispositivo no están en el mismo dominio de recursos, el contexto entrará en \ estado de error. El destino no se cambiará.

ID2D1RenderTarget::GetPixelSize devuelve el tamaño del mapa de bits de destino actual (o 0, 0) si no hay ningún mapa de bits enlazado). ID2D1RenderTarget::GetSize devuelve el tamaño de píxel del mapa de bits actual escalado por el PPP del destino de representación. SetTarget no afecta al PPP del destino de representación.

ID2D1RenderTarget::GetPixelFormat devuelve el formato de píxel del mapa de bits de destino actual (o DXGI_FORMAT_UNKNOWN, D2D1_ALPHA_MODE_UNKNOWN si no hay ninguno).

ID2D1Bitmap::CopyFromRenderTarget copia desde el mapa de bits de destino enlazado actualmente.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 8 y Actualización de plataforma para Windows 7 [aplicaciones de escritorio | Aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2012 y actualización de plataforma para Windows Server 2008 R2 [aplicaciones de escritorio | Aplicaciones para UWP]
Plataforma de destino Windows
Encabezado d2d1_1.h
Archivo DLL D2d1.dll

Consulte también

ID2D1Bitmap1

ID2D1DeviceContext

ID2D1DeviceContext::CreateBitmap

ID2D1DeviceContext::GetTarget