Compartir a través de


estructura DXGK_GDIARG_STRETCHBLT (d3dkmddi.h)

La estructura de DXGK_GDIARG_STRETCHBLT describe las características de una operación de transferencia de bloques de bits (bitblt) acelerada por hardware GDI.

Sintaxis

typedef struct _DXGK_GDIARG_STRETCHBLT {
  [in] RECT  SrcRect;
  [in] RECT  DstRect;
  [in] UINT  DstAllocationIndex;
  [in] UINT  SrcAllocationIndex;
       UINT  NumSubRects;
  [in] RECT  *pSubRects;
  union {
    struct {
      UINT Mode : 16;
      UINT MirrorX : 1;
      UINT MirrorY : 1;
    };
    [in] UINT Flags;
  };
  [in] UINT  SrcPitch;
} DXGK_GDIARG_STRETCHBLT;

Miembros

[in] SrcRect

Estructura RECT que define el área rectangular que se va a copiar. Este rectángulo se especifica en el sistema de coordenadas de la superficie de origen y se define mediante dos puntos: superior izquierda e inferior derecha. Los dos puntos que definen el rectángulo siempre están bien ordenados.

El rectángulo de origen nunca superará los límites de la superficie de origen, por lo que nunca superará la superficie de origen.

Este rectángulo se asigna al rectángulo de destino definido por DstRect.

Para obtener más información, vea la sección Comentarios.

[in] DstRect

Estructura RECT que define el área rectangular que se va a modificar. Este rectángulo se especifica en el sistema de coordenadas de la superficie de destino y se define mediante dos puntos: superior izquierda e inferior derecha. El rectángulo es exclusivo de la parte inferior derecha; es decir, sus bordes inferiores y derecho no forman parte de la transferencia de bloques de bits. Los dos puntos que definen el rectángulo siempre están bien ordenados.

El rectángulo de destino definido por DstRect puede superar los límites de la superficie de destino, pero los subctángulos no pueden. Además, se garantiza que todos los subctángulos se ajusten dentro de la superficie de destino. Los subctángulos se pueden restringir aún más mediante un rectángulo delimitador más pequeño que el rectángulo de destino.

Para obtener más información, vea la sección Comentarios.

[in] DstAllocationIndex

Índice del elemento de la lista de asignación que especifica la asignación a la que hace referencia el rectángulo de destino DstRect .

[in] SrcAllocationIndex

Índice del elemento de la lista de asignación que especifica la asignación a la que hace referencia el rectángulo de origen SrcRect.

NumSubRects

Número de subctángulos en el espacio de superficie de destino que está limitado por el rectángulo de destino DstRect .

[in] pSubRects

Puntero a los subctángulos del espacio de superficie de destino que está limitado por el rectángulo de destino DstRect .

[in] Mode

Especifica cómo se combinan los píxeles de origen para generar píxeles de salida en función de si se establecen los siguientes valores definidos en Wingdi.h :

Valor Significado
BLACKONWHITE En una transferencia de bloques de bits de reducción, los píxeles deben combinarse con una operación BOOLEAN AND. En una transferencia de bloques de bits de extensión, se deben replicar píxeles.
WHITEONBLACK En una transferencia de bloques de bits de reducción, los píxeles deben combinarse con una operación OR booleana. En una transferencia de bloques de bits de extensión, se deben replicar píxeles.

Este tipo de operación solo se procesará si el controlador ha establecido el miembro SupportMonoStretchBltModes en la estructura DXGK_PRESENTATIONCAPS .

[in] MirrorX

Especifica si la transferencia de bloques de bits extendido se realizará en modo reflejado en la xdirection. Este tipo de operación se procesará solo si el valor de MirrorX es distinto de cero y el controlador ha establecido el miembro SupportMirrorStretchBlt en la estructura DXGK_PRESENTATIONCAPS .

[in] MirrorY

Especifica si la transferencia de bloques de bits extendido se realizará en modo reflejado en la dirección y. Este tipo de operación se procesará solo si el valor de MirrorY es distinto de cero y el controlador ha establecido el miembro SupportMirrorStretchBlt en la estructura DXGK_PRESENTATIONCAPS .

[in] Flags

Valor UINT opcional que se puede usar para depurar código de controlador.

[in] SrcPitch

Tono de la superficie de origen, en bytes.

Comentarios

Las relaciones de ajuste x e y se calculan respectivamente como las relaciones de los tamaños x e y de los miembros DstRect y SrcRect .

El modo HALFTONE y los modos de STRETCH_HALFTONE definidos en Wingdi.h nunca se establecerán en el miembro Mode . El modo COLORONCOLOR se puede establecer en las estructuras DXGK_GDIARG_ALPHABLEND y DXGK_GDIARG_TRANSPARENTBLT .

Cuando los subctángulos se transforman en el espacio de superficie de origen, se garantiza que el resultado está dentro de la superficie de origen. La transformación de las coordenadas de un sub rectángulo en la superficie de destino para las coordenadas de la superficie de origen se define mediante las fórmulas siguientes, donde

  • (Xd, Yd) es un punto dentro del sub rectángulo
  • (Xs, Ys) es un punto dentro del rectángulo de origen
float Ws = SrcRect.right - SrcRect.left;
float Wd = DstRect.right - DstRect.left;
int Xs = round((Xd - DstRect.left + 0.5) * Ws/Wd + SrcRect.left - 0.5)
OR
int Xs = truncate((Xd - DstRect.left + 0.5) * Ws/Wd + SrcRect.left)

float Hs = SrcRect.bottom - SrcRect.top;
float Hd = DstRect.bottom - DstRect.top;
int Ys = round((Yd - DstRect.top + 0.5) * Hs/Hd + SrcRect.top - 0.5)
OR
int Ys = truncate((Yd - DstRect.top + 0.5) * Hs/Hd + SrcRect.top)

Requisitos

Requisito Value
Cliente mínimo compatible Windows 7
Encabezado d3dkmddi.h (incluye D3dkmddi.h)

Consulte también

DXGK_GDIARG_ALPHABLEND

DXGK_GDIARG_TRANSPARENTBLT

DXGK_PRESENTATIONCAPS

RECT