DXGKARG_PRESENT estrutura (d3dkmddi.h)
A estrutura DXGKARG_PRESENT descreve uma operação de cópia de origem para primária.
Sintaxe
typedef struct _DXGKARG_PRESENT {
[out] VOID *pDmaBuffer;
[in] UINT DmaSize;
[in] VOID *pDmaBufferPrivateData;
[in] UINT DmaBufferPrivateDataSize;
union {
[in] DXGK_ALLOCATIONLIST *pAllocationList;
[in] DXGK_PRESENTALLOCATIONINFO *pAllocationInfo;
[in] DXGK_PRESENTMULTIPLANEOVERLAYINFO *pPresentMultiPlaneOverlayInfo;
};
#if ...
[in/out] D3DDDI_PATCHLOCATIONLIST *pPatchLocationListOut;
#if ...
[in] UINT PatchLocationListOutSize;
[in] DXGK_ALLOCATIONLIST *pAllocationList;
#else
[in/out] D3DDDI_PATCHLOCATIONLIST *pPatchLocationListOut;
#endif
#else
[in] UINT PatchLocationListOutSize;
#endif
[in/out] UINT MultipassOffset;
[in] UINT Color;
[in] RECT DstRect;
[in] RECT SrcRect;
[in] UINT SubRectCnt;
[in] const RECT *pDstSubRects;
[in] D3DDDI_FLIPINTERVAL_TYPE FlipInterval;
[in] DXGK_PRESENTFLAGS Flags;
[in] UINT DmaBufferSegmentId;
[in] PHYSICAL_ADDRESS DmaBufferPhysicalAddress;
[in] UINT Reserved;
D3DGPU_VIRTUAL_ADDRESS DmaBufferGpuVirtualAddress;
UINT NumSrcAllocations;
UINT NumDstAllocations;
UINT PrivateDriverDataSize;
PVOID pPrivateDriverData;
} DXGKARG_PRESENT;
Membros
[out] pDmaBuffer
Um ponteiro para o início do buffer de DMA, que está alinhado em 4 KB. Esse buffer pode ser enviado por meio de DMA para o hardware gráfico. Antes que o driver de miniporto de exibição retorne da função DxgkDdiPresent, o driver deve definir pDmaBuffer para o próximo byte vazio que segue o último byte ao qual o driver escreveu ou o driver deve apontar para o local (um byte além do espaço de buffer) se não houver mais espaço disponível. Esse local estaria correto se o buffer fosse grande o suficiente.
[in] DmaSize
O tamanho, em bytes, do buffer DMA que pDmaBuffer aponta para.
[in] pDmaBufferPrivateData
Um ponteiro para uma estrutura de dados privados residente no driver associada ao buffer de DMA que pDmaBuffer aponta.
[in] DmaBufferPrivateDataSize
O número de bytes que permanecem na estrutura de dados privada que pDmaBufferPrivateData aponta para a operação atual.
[in] pAllocationList
Uma matriz de estruturas DXGK_ALLOCATIONLIST que descrevem a origem, o destino ou ambos para a operação de cópia. O driver acessa o identificador de alocação de origem por meio do hDeviceSpecificAllocation membro do elemento pAllocationList[DXGK_PRESENT_SOURCE_INDEX] (ou seja, elemento 1). O driver acessa o identificador de alocação de destino por meio do hDeviceSpecificAllocation membro do elemento pAllocationList[DXGK_PRESENT_DESTINATION_INDEX] (ou seja, elemento 2).
Os identificadores especificados nos elementos da lista de alocação são os identificadores específicos do dispositivo que o driver DxgkDdiOpenAllocation função retornada quando as alocações foram abertas. Se uma origem ou destino não estiver presente para a operação, o hDeviceSpecificAllocation membro do respectivo elemento será NULL. Este membro está disponível a partir do Windows 7.
Nota
O hDeviceSpecificAllocation membro do primeiro elemento na lista de alocação (elemento 0) é sempre NULL.
[in] pAllocationInfo
Reservado para uso do sistema. O driver de miniporto de exibição deve ignorar esse membro. Este membro está disponível a partir do Windows 7.
[in] pPresentMultiPlaneOverlayInfo
Um ponteiro para uma estrutura do tipo DXGK_PRESENTMULTIPLANEOVERLAYINFO que especifica informações sobre uma entrada VidPN e um plano de sobreposição a ser exibido.
Com suporte a partir do Windows 8.
[in/out] pPatchLocationListOut
Uma matriz de estruturas de D3DDDI_PATCHLOCATIONLIST para a lista de locais de patch que o driver de miniporto de exibição preenche. Antes que o driver retorne de uma chamada para sua função DxgkDdiPresent, o driver deve definir pPatchLocationListOut para o próximo elemento D3DDDI_PATCHLOCATIONLIST que segue o último elemento D3DDDI_PATCHLOCATIONLIST que o driver atualizou.
[in] PatchLocationListOutSize
O número de elementos na lista de locais de patch que pPatchLocationListOut especifica. O driver de miniporto de exibição não é necessário para preencher todos os elementos na lista inteira; o driver deve usar apenas os elementos necessários para descrever o local do patch dentro do buffer DMA.
[in/out] MultipassOffset
Um valor UINT que especifica o progresso da operação de cópia se a função DxgkDdiPresentDxgkDdiPresent do driver de exibição precisar retornar STATUS_GRAPHICS_INSUFFICIENT_DMA_BUFFER para obter um novo buffer DMA. Quando a função DxgkDdiPresent do driver é chamada pela primeira vez com uma nova lista deRECT, MultipassOffset é inicializado como zero. Antes que o driver retorne da chamada DxgkDdiPresent, o driver define multipassOffset para mostrar o progresso da cópia para chamadas DxgkDdiPresent subsequentes com o mesmo buffer de comando. O subsistema de kernel de elementos gráficos do Microsoft DirectX não altera ainda mais o valor.
[in] Color
A cor A8R8G8B8 em uma operação de preenchimento de cores, que é especificada pelo ColorFill sinalizador de campo de bits definido no membro sinalizadores ou uma operação de chave de cor, que é especificada pelo SrcColorKey ou sinalizador de campo de bits DstColorKey. Observe que apenas um dos sinalizadores ColorFill, SrcColorKeye DstColorKey bit-field está definido a qualquer momento.
Se o formato primário for palettizado RGB, Color conterá o índice de paleta em vez do valor D3DDDIFMT_A8R8G8B8 do tipo de enumeração D3DDDIFORMAT.
[in] DstRect
Uma estrutura RECT para o retângulo de destino usado para calcular o fator de alongamento.
[in] SrcRect
Uma estrutura RECT para o retângulo de origem que é usada para calcular o fator de alongamento.
[in] SubRectCnt
O número de sub-retângulos de destino na matriz que pDstSubRects especifica.
[in] pDstSubRects
Uma matriz de estruturas RECT para a lista de sub-retângulos de destino aos quais a função DxgkDdiPresent copia.
[in] FlipInterval
Um valor digitado D3DDDI_FLIPINTERVAL_TYPEque indica o intervalo de inversão (ou seja, se a inversão ocorrer após zero, uma, duas, três ou quatro sincronizações verticais).
[in] Flags
Uma estrutura DXGK_PRESENTFLAGS que identifica, em sinalizadores de campo de bit, o tipo de operação presente a ser executada. Observe que os ColorFill, SrcColorKey e DstColorKey sinalizadores de campo de bit no Flags são mutuamente exclusivos.
[in] DmaBufferSegmentId
O identificador do segmento de memória no qual o buffer de DMA foi paginado. Se o identificador for zero, o buffer de DMA não será paginado corretamente.
[in] DmaBufferPhysicalAddress
Um tipo de dados PHYSICAL_ADDRESS (que é definido como LARGE_INTEGER) que indica o endereço físico no qual o buffer de DMA foi colocado. Se o endereço físico for zero, o buffer de DMA não será paginado corretamente.
[in] Reserved
Reservado para uso do sistema. O driver deve ignorar esse membro.
DmaBufferGpuVirtualAddress
Um tipo de dados D3DGPU_VIRTUAL_ADDRESS que indica o endereço virtual no qual o buffer de DMA foi paginado. Se o endereço físico for zero, o buffer de DMA não será paginado corretamente.
NumSrcAllocations
O número de alocações de contexto na origem.
NumDstAllocations
O número de alocações de contexto no destino.
PrivateDriverDataSize
O tamanho de pPrivateDriverData.
pPrivateDriverData
Ponteiro para um buffer que contém dados opcionais de driver privado.
Observações
A proporção das áreas retangulares de origem e destino especificadas pelos membros SrcRect e DstRect membros é usada para calcular um fator de alongamento. O driver pode levar em conta o cálculo de fator elástico ao executar a operação de cópia.
O driver não é necessário para executar nenhum recorte. O subsistema de kernel gráfico do Microsoft DirectX preclipsa a lista de sub-retângulos de destino que o membro pDstSubRects especifica para as coordenadas do retângulo de destino que o membro do DstRect especifica e para a tela (primária). Observe que, se uma lista de sub-retângulos de destino for fornecida em pDstSubRects, o driver deverá usar apenas SrcRect e DstRect para calcular o fator de alongamento e deve usar as coordenadas dos sub-retângulos de destino para a operação de cópia real.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Windows Vista |
cabeçalho | d3dkmddi.h (inclua D3dkmddi.h) |