PDD_VPORTCB_GETBANDWIDTH função de retorno de chamada (ddrawint.h)
A função de retorno de chamada DdVideoPortGetBandwidth relata as limitações de largura de banda da memória de buffer de quadro do dispositivo com base no formato de saída de objeto VPE especificado.
Sintaxe
PDD_VPORTCB_GETBANDWIDTH PddVportcbGetbandwidth;
DWORD PddVportcbGetbandwidth(
PDD_GETVPORTBANDWIDTHDATA unnamedParam1
)
{...}
Parâmetros
unnamedParam1
Aponta para uma estrutura DD_GETVPORTBANDWIDTHDATA que contém as informações necessárias para que o driver retorne os dados de largura de banda.
Valor retornado
DdVideoPortGetBandwidth retorna um dos seguintes códigos de retorno de chamada:
Comentários
DdVideoPortGetBandwidth deve ser implementado em drivers DirectDraw que dão suporte a VPE.
DdVideoPortGetBandwidth informa aos clientes os requisitos de largura de banda para qualquer formato especificado, ajudando-os a escolher um formato e entender melhor suas limitações. O driver só pode fornecer informações precisas de largura de banda após a criação do objeto VPE porque o driver precisa das informações na estrutura DDVIDEOPORTDESC .
DdVideoPortGetBandwidth normalmente é chamado duas vezes para obter os parâmetros de largura de banda da porta de vídeo de hardware especificada. Dependendo do membro dwFlags da estrutura DD_GETVPORTBANDWIDTHDATA em lpGetVideoPortBandwidth, o driver deve fazer o seguinte:
-
Quando o sinalizador é DDVPB_TYPE, o driver deve indicar o tipo de dispositivo que é definindo um dos seguintes sinalizadores no membro dwCaps da estrutura DDVIDEOPORTBANDWIDTH à qual o membro lpBandwidth de DD_GETVPORTBANDWIDTHDATA aponta:
- DDVPBCAPS_DESTINATION indica que o dispositivo descreverá seus recursos de largura de banda em termos do fator de alongamento de sobreposição; ou seja, que as informações de largura de banda retornadas pelo driver na próxima chamada para DdVideoPortGetBandwidth se referirão ao tamanho da sobreposição de destino. Esse sinalizador descreve melhor o hardware que é atualizado das superfícies primária e de sobreposição simultaneamente. À medida que o vídeo de destino é estendido, o hardware tem mais tempo para ler os pixels da superfície de sobreposição, diminuindo a largura de banda de memória necessária.
- DDVPBCAPS_SOURCE indica que o dispositivo descreverá seus recursos de largura de banda em termos do tamanho de sobreposição de origem necessário; ou seja, que as informações de largura de banda retornadas pela próxima chamada para DdVideoPortGetBandwidth referem-se ao tamanho da sobreposição de origem. Esse sinalizador descreve melhor o hardware que pré-busca os dados de sobreposição em um buffer de linha ou FIFO grande. Esse hardware não requer largura de banda extra, mas exige que os dados de sobreposição de origem se ajustem inteiramente no tamanho do buffer/FIFO com suporte do hardware.
O driver também deve definir o membro dwSize da estrutura DDVIDEOPORTBANDWIDTH antes de retornar.
-
Quando o sinalizador é DDVPB_VIDEOPORT, os membros dwWidth e dwHeight na estrutura DD_GETVPORTBANDWIDTHDATA referem-se ao tamanho de pré-dimensionamento dos dados de vídeo que a porta de vídeo de hardware gravará no buffer de quadros como a sobreposição de origem. O driver deve retornar um fator de alongamento de sobreposição no qual o dispositivo pode exibir a sobreposição, multiplicada por 1000, em cada um dos membros dwOverlay, dwColorkey, dwYInterpolate e dwYInterpAndColorkey da estrutura DDVIDEOPORTBANDWIDTH. Por exemplo, um valor de 2000 indica que o dispositivo tem a largura de banda para esticar a sobreposição para duas vezes o tamanho especificado da origem ao exibi-la. Um valor de 1000 indica que nenhuma alongamento precisa ser feita para o tamanho de dados especificado. Um valor de 500 indica que o dispositivo tem largura de banda suficiente para reduzir o destino de sobreposição pela metade. O driver deve definir um valor válido em dwOverlay, mas pode retornar -1 em qualquer um dos outros três membros aos quais ele não dá suporte.
O sinalizador DDVPB_VIDEOPORT pressupõe que o dispositivo é melhor descrito pelo sinalizador DDVPBCAPS_DESTINATION. Se esse não for o caso, o driver deverá falhar na chamada.
-
Quando o sinalizador DDVPB_OVERLAY é definido, os membros dwWidth e dwHeight na estrutura DD_GETVPORTBANDWIDTHDATA referem-se ao tamanho da sobreposição de origem. O driver deve retornar uma porcentagem do tamanho dessa sobreposição, multiplicada por 1000, na qual ele pode dar suporte à exibição da sobreposição em cada um dos membros dwOverlay, dwColorkey, dwYInterpolate e dwYInterpAndColorkey da estrutura DDVIDEOPORTBANDWIDTH. Por exemplo, um valor de 750 indica que o dispositivo requer que a sobreposição de origem especificada seja reduzida para 75% de seu tamanho original para que o dispositivo a exiba com êxito. Um valor de 1000 indica que nenhuma redução é necessária. Os drivers para esse tipo de dispositivo normalmente não retornam um valor maior que 1000. O driver deve definir um valor válido em dwOverlay, mas pode retornar 0 em qualquer um dos outros três membros se não der suporte à interpolação do eixo Y e/ou chave de cor.
O sinalizador DDVPB_OVERLAY pressupõe que o dispositivo seja melhor descrito usando o sinalizador DDVPBCAPS_SOURCE. Se esse não for o caso, o driver deverá falhar na chamada.
Requisitos
Plataforma de Destino | Área de Trabalho |
Cabeçalho | ddrawint.h (inclua Winddi.h) |