PFND3DDDI_BLT função de retorno de chamada (d3dumddi.h)
A função Blt copia o conteúdo de uma superfície de origem para uma superfície de destino.
Sintaxe
PFND3DDDI_BLT Pfnd3dddiBlt;
HRESULT Pfnd3dddiBlt(
HANDLE hDevice,
const D3DDDIARG_BLT *unnamedParam2
)
{...}
Parâmetros
hDevice
Um identificador para o dispositivo de exibição (contexto gráfico).
unnamedParam2
pData [in]
Um ponteiro para uma estrutura D3DDDIARG_BLT que descreve os parâmetros da transferência de bloco de bits (bitblt).
Retornar valor
Blt retorna um dos seguintes valores:
Código de retorno | Descrição |
---|---|
S_OK | O bitblt para o recurso é executado com êxito. |
E_OUTOFMEMORY | O Blt não pôde alocar a memória necessária para que ela fosse concluída. |
Comentários
O runtime do Microsoft Direct3D chama a função Blt do driver de exibição no modo de usuário para copiar o conteúdo de uma superfície de origem para uma superfície de destino. Depois de mapear as referências de superfície para referências de alocação, o driver de exibição do modo de usuário deve emitir os comandos de hardware apropriados. Se a alocação de origem ou destino estiver na memória do sistema, o driver de exibição do modo de usuário poderá ser necessário para sincronizar (ou seja, chamar a função pfnRenderCb ) se o fluxo de comando de hardware pendente contiver referências à alocação de memória do sistema. Se as alocações de origem e destino estiverem na memória do sistema, o driver deverá sincronizar conforme necessário, mas não deve copiar o conteúdo da superfície de origem. O runtime do Direct3D copia o conteúdo após o retorno da chamada para pfnRenderCb .
O driver de exibição do modo de usuário deve lidar com as seguintes condições que podem ocorrer durante uma operação de cópia:
- As superfícies de destino e de origem fazem parte do mesmo recurso (ou seja, os membros hSrcResource e hDstResource de D3DDDIARG_BLT especificar identificadores para o mesmo recurso).
- Os retângulos de origem e destino se sobrepõem (ou seja, as coordenadas das estruturas RECT nos membros SrcRect e DstRect de D3DDDIARG_BLT sobrepostas).
O driver de exibição do modo de usuário deve dar suporte à colorkeying somente com formatos que foram introduzidos antes do Microsoft DirectX 8.0. Para formatos que foram introduzidos no DirectX 8.0 e em runtimes posteriores, o suporte a colorkeying não é necessário.
O tipo de bitblt a ser executado é indicado por meio dos sinalizadores de campo de bit especificados no membro Flags do D3DDDIARG_BLT. A memória de vídeo para bitblts de memória de vídeo pode incluir colorkeying, alongamento, espelhamento e conversão de formato linear para sRGB. A memória do sistema para bitblts de memória de vídeo pode incluir alongamento e conversão de formato linear para sRGB; no entanto, esses tipos de bitblts nunca incluem espelhamento ou colorkeying. Toda a memória de vídeo para bitblts de memória do sistema e memória do sistema para bitblts de memória do sistema são apenas cópias retas; ou seja, esses tipos de bitblts nunca incluem alongamento, espelhamento, colorkeying ou conversão de formato linear para sRGB. Para obter mais informações sobre o formato sRGB, consulte o site sRGB .
Para obter mais informações sobre as regras que a função Blt deve seguir ao converter valores de estêncil de profundidade, consulte Copiando valores de Depth-Stencil.
O runtime do Direct3D pode chamar a função Blt do driver de exibição no modo de usuário para copiar o conteúdo de qualquer tipo de superfície de origem (como, tipo sem formatação offscreen, tipo de destino de renderização ou tipo de textura) para qualquer outro tipo de superfície de destino.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Disponível no Windows Vista e versões posteriores dos sistemas operacionais Windows. |
Plataforma de Destino | Área de Trabalho |
Cabeçalho | d3dumddi.h (inclua D3dumddi.h) |