PFND3D10DDI_RESOURCECOPYREGION função de retorno de chamada (d3d10umddi.h)
A função ResourceCopyRegion copia uma região de sub-recurso de origem para um local em um sub-recurso de destino.
Sintaxe
PFND3D10DDI_RESOURCECOPYREGION Pfnd3d10ddiResourcecopyregion;
void Pfnd3d10ddiResourcecopyregion(
D3D10DDI_HDEVICE unnamedParam1,
D3D10DDI_HRESOURCE unnamedParam2,
UINT unnamedParam3,
UINT unnamedParam4,
UINT unnamedParam5,
UINT unnamedParam6,
D3D10DDI_HRESOURCE unnamedParam7,
UINT unnamedParam8,
const D3D10_DDI_BOX *unnamedParam9
)
{...}
Parâmetros
unnamedParam1
hDevice [in]
Um identificador para o dispositivo de exibição (contexto gráfico).
unnamedParam2
hDstResource [in]
Um identificador para o recurso de destino para o qual copiar.
unnamedParam3
DstSubresource [in]
Um índice que indica o sub-recurso de destino para o qual copiar.
unnamedParam4
DstX [in]
A coordenada x do sub-recurso de destino.
unnamedParam5
DstY [in]
A coordenada y do sub-recurso de destino. Para sub-recursos unidimensionais (1D), DstY é definido como zero.
unnamedParam6
DstZ [in]
A coordenada z do sub-recurso de destino. Para sub-recursos unidimensionais (1D) e bidimensionais (2D), dstZ é definido como zero.
unnamedParam7
hSrcResource [in]
Um identificador para o recurso de origem do qual copiar.
unnamedParam8
SrcSubresource [in]
Um índice que indica o sub-recurso de origem do qual copiar.
unnamedParam9
pSrcBox [in, opcional]
Um ponteiro para uma estrutura D3D10_DDI_BOX que especifica uma caixa que se ajusta ao sub-recurso de origem ou destino. Se pSrcBox for NULL, o driver deverá copiar todo o sub-endereço de origem para o destino.
Se os membros da estrutura D3D10_DDI_BOX forem tais que left>=right, top>=bottom ou front>=back, pSrcBox será considerado vazio e ResourceCopyRegion não deverá executar nenhuma operação de cópia.
Retornar valor
Nenhum
Comentários
O driver pode usar a função de retorno de chamada pfnSetErrorCb para definir um código de erro.
O runtime do Microsoft Direct3D chama a função ResourceCopyRegion do driver de exibição do modo de usuário para informar o driver a copiar da região de sub-recurso de origem especificada para um local no sub-recurso de destino especificado. Os sub-recursos de origem e destino não podem ser o mesmo sub-recurso do mesmo recurso. Os recursos de origem e destino devem ser do mesmo tipo de recurso e devem ter tipos de formato (valores de tipo DXGI_FORMAT) que sejam conversíveis entre si.
Para buffers, todas as coordenadas devem estar em bytes; enquanto para texturas, todas as coordenadas devem estar em pixels. A caixa para a qual o parâmetro pSrcBox aponta não deve se estender sobre as bordas da região de sub-recurso de origem ou o sub-recurso de destino. O recurso de origem e de destino não deve ser mapeado no momento. Além disso, os sinalizadores de criação de recursos restringem se o recurso pode participar da operação de cópia.
O driver não deve encontrar nenhum erro, exceto por D3DDDIERR_DEVICEREMOVED. Portanto, se o driver passar algum erro, exceto por D3DDDIERR_DEVICEREMOVED, em uma chamada para a função pfnSetErrorCb , o runtime do Direct3D determinará que o erro é crítico. Mesmo que o dispositivo tenha sido removido, o driver não precisará retornar D3DDDIERR_DEVICEREMOVED; no entanto, se a remoção do dispositivo interferiu na operação de ResourceCopyRegion (o que normalmente não deve acontecer), o driver poderá retornar D3DDDIERR_DEVICEREMOVED.
A versão Direct3D 10.1 do ResourceCopyRegion tem uma grande diferença de funcionalidade da versão Direct3D 10.0 em relação ao membro ResourceDimension do D3D10DDIARG_CREATERESOURCE para os recursos de origem e destino que foram criados em chamadas para a função CreateResource(D3D10) do driver. Para a versão Direct3D 10.0 de ResourceCopyRegion, o membro ResourceDimension do D3D10DDIARG_CREATERESOURCE para os recursos de origem e destino deve corresponder. A versão Direct3D 10.1 do ResourceCopyRegion permite um pequeno relaxamento para o membro ResourceDimension do D3D10DDIARG_CREATERESOURCE para os recursos de origem e destino. A versão Direct3D 10.1 do ResourceCopyRegion permite a cópia de recursos de origem Tex2D em recursos de destino TexCube ou recursos de origem TexCube em recursos de destino Tex2D. Além disso, a distinção entre TexCube no nível do recurso se foi no Direct3D versão 10.1. A versão Direct3D 10.1 do ResourceCopyRegion representa apenas se ele pode copiar um TexCube. No Direct3D versão 10.0, copiar um recurso, validar um destino de renderização múltipla e assim por diante (ou seja, várias operações que exigiam que o tipo de recurso fosse idêntico) incluíam a distinção de TexCube para considerar o tipo de recurso. No Direct3D versão 10.1, o runtime pode determinar apenas Tex2D.
As seções a seguir listam as condições para copiar e converter:
Copiando
Para copiar, ResourceCopyRegion garante que os recursos de origem e destino foram criados por meio da função CreateResource(D3D10) do driver com as seguintes condições:
- O recurso de destino não foi criado com o valor D3D10_DDI_USAGE_IMMUTABLE definido no membro Usage da estrutura D3D10DDIARG_CREATERESOURCE .
- Se o recurso de origem ou destino tiver o D3D10_DDI_BIND_DEPTH_STENCIL bit definido no membro BindFlags do D3D10DDIARG_CREATERESOURCE ou for um recurso de várias amostras, ResourceCopyRegion verificará se o parâmetro pSrcBox é NULL, enquanto os parâmetros DstX, DstY e DstZ são 0.
- Os índices de sub-recurso estão no intervalo.
- As restrições de alinhamento se aplicam às coordenadas.
- Os recursos de origem e destino não fazem parte exatamente do mesmo sub-recurso.
- Cada formato de recurso de origem e destino especificado no membro Format do D3D10DDIARG_CREATERESOURCE está no mesmo grupo sem tipo.
- Os recursos de origem e destino devem ter o mesmo número de amostras e níveis de qualidade; exceto para recursos de amostra única, que devem ter apenas o mesmo número de amostras.
Converter
Para conversão, ResourceCopyRegion garante que os recursos de origem e destino foram criados por meio da função CreateResource(D3D10) do driver com as seguintes condições:
- O recurso de destino não foi criado com o valor D3D10_DDI_USAGE_IMMUTABLE definido no membro Usage da estrutura D3D10DDIARG_CREATERESOURCE .
- Se o recurso de origem ou destino tiver o D3D10_DDI_BIND_DEPTH_STENCIL bit definido no membro BindFlags do D3D10DDIARG_CREATERESOURCE ou for um recurso de várias amostras, ResourceCopyRegion verificará se o parâmetro pSrcBox é NULL, enquanto os parâmetros DstX, DstY e DstZ são 0.
- Os índices de sub-recurso estão no intervalo.
- As restrições de alinhamento se aplicam às coordenadas.
- Os recursos de origem e destino não fazem parte exatamente do mesmo sub-recurso.
- Cada formato de recurso de origem e destino especificado no membro Format do D3D10DDIARG_CREATERESOURCE está no mesmo grupo sem tipo.
- Cada formato de recurso de origem e destino especificado no membro Format do D3D10DDIARG_CREATERESOURCE dá suporte à operação de conversão apropriada.
- Os recursos de origem e destino devem ter o mesmo número de amostras e níveis de qualidade; exceto para recursos de amostra única, que devem ter apenas o mesmo número de amostras.
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 | d3d10umddi.h (inclua D3d10umddi.h) |