Compartilhar via


PFND3D11_1DDI_RESOURCECOPYREGION função de retorno de chamada (d3d10umddi.h)

Copia uma região de sub-recursos de origem para um local em um sub-recurso de destino.

Sintaxe

PFND3D11_1DDI_RESOURCECOPYREGION Pfnd3d111DdiResourcecopyregion;

void Pfnd3d111DdiResourcecopyregion(
       D3D10DDI_HDEVICE unnamedParam1,
       D3D10DDI_HRESOURCE unnamedParam2,
       UINT unnamedParam3,
       UINT unnamedParam4,
       UINT unnamedParam5,
       UINT unnamedParam6,
       D3D10DDI_HRESOURCE unnamedParam7,
       UINT unnamedParam8,
       const D3D10_DDI_BOX *unnamedParam9,
  [in] UINT CopyFlags
)
{...}

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), o 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 de D3D10_DDI_BOX que especifica uma caixa que se encaixa no sub-recurso de origem ou de 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(D3D11_1) não deverá executar nenhuma operação de cópia.

[in] CopyFlags

Um valor que especifica características da operação de cópia como um OR bit a bit dos valores no tipo de enumeração D3D11_1_DDI_COPY_FLAGS.

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(D3D11_1) do driver de exibição do modo de usuário para informar o driver a copiar da região de sub-fonte de origem especificada para um local na sub-fonte de destino especificada. Os sub-recursos de origem e destino podem ser o mesmo sub-recurso do mesmo recurso. Os recursos de origem e de destino devem ser do mesmo tipo de recurso e devem ter tipos de formato (valores de tipo DXGI_FORMAT) conversíveis uns para os outros.

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-fonte de origem ou o sub-recurso de destino. A origem e o recurso de destino não devem ser mapeados 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 para D3DDDIERR_DEVICEREMOVED. Portanto, se o driver passar qualquer 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 (o que normalmente não deve acontecer), o driver poderá retornar D3DDDIERR_DEVICEREMOVED.

O driver pode implementar uma função ResourceCopyRegion(D3D11_1) que pode conter uma instrução switch para processar a cópia e a conversão. Ou seja, o driver pode implementar um ResourceCopyRegion(D3D11_1) e pode definir o membro pfnResourceConvertRegion da estrutura D3D11_1DDI_DEVICEFUNCS para apontar para ResourceCopyRegion(D3D11_1) juntamente com o membro pfnResourceCopyRegion de D3D11_1DDI_DEVICEFUNCS. No entanto, para melhorar o desempenho, o driver pode implementar funções separadas ResourceCopyRegion(D3D11_1) e ResourceConvertRegion(D3D11_1 ).

As seções a seguir listam condições para copiar e converter:

Copiando

Para copiar, ResourceCopyRegion(D3D11_1) garante que os recursos de origem e destino foram criados por meio da função CreateResource(D3D11) 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 D3D11DDIARG_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(D3D11_1) verificará se o parâmetro pSrcBox é NULL, enquanto os parâmetros DstX, DstY e DstZ são 0.
  • Os índices de sub-recursos 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 de D3D11DDIARG_CREATERESOURCE está no mesmo grupo sem tipo.
  • Os recursos de origem e destino devem ter o mesmo número de exemplos e níveis de qualidade; exceto para recursos de amostra única, que devem ter apenas o mesmo número de amostras.
ResourceCopyRegion(D3D11_1) não garante que a caixa de origem que é deslocada pelos deslocamentos de destino se encaixe inteiramente no recurso. ResourceCopyRegion(D3D11_1) também não garante que nenhum sub-recurso esteja mapeado no momento.

Converter

Para conversão, ResourceCopyRegion(D3D11_1) garante que os recursos de origem e destino foram criados por meio da função CreateResource(D3D11) 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 D3D11DDIARG_CREATERESOURCE .
  • Se o recurso de origem ou destino tiver o D3D10_DDI_BIND_DEPTH_STENCIL bit definido no membro BindFlags do D3D11DDIARG_CREATERESOURCE ou for um recurso de várias amostras, ResourceCopyRegion(D3D11_1) verificará se o parâmetro pSrcBox é NULL, enquanto os parâmetros DstX, DstY e DstZ são 0.
  • Os índices de sub-recursos 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 de D3D11DDIARG_CREATERESOURCE está no mesmo grupo sem tipo.
  • Cada formato de recurso de origem e destino especificado no membro Format de D3D11DDIARG_CREATERESOURCE dá suporte à operação de conversão apropriada.
  • Os recursos de origem e destino devem ter o mesmo número de exemplos e níveis de qualidade; exceto para recursos de amostra única, que devem ter apenas o mesmo número de amostras.
ResourceCopyRegion(D3D11_1) não garante que nenhum sub-recurso esteja mapeado no momento. ResourceCopyRegion(D3D11_1) também não garante que a caixa de origem que é deslocada pelos deslocamentos de destino se encaixe inteiramente no recurso.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 8
Servidor mínimo com suporte Windows Server 2012
Plataforma de Destino Área de Trabalho
Cabeçalho d3d10umddi.h (inclua D3d10umddi.h)

Confira também

CreateResource(D3D11)

D3D10_DDI_BOX

D3D11DDIARG_CREATERESOURCE

D3D11_1DDI_DEVICEFUNCS

D3D11_1_DDI_COPY_FLAGS

pfnSetErrorCb