PFND3D10DDI_RESOURCECOPYREGION función de devolución de llamada (d3d10umddi.h)
La función resourceCopyRegion de copia una región de subrecurso de origen en una ubicación en un subrecurso de destino.
Sintaxis
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]
Identificador del dispositivo de visualización (contexto de gráficos).
unnamedParam2
hDstResource [in]
Identificador del recurso de destino al que se va a copiar.
unnamedParam3
DstSubresource [in]
Índice en el que se indica el subrecurso de destino al que se va a copiar.
unnamedParam4
DstX [in]
Coordenada x del subrecurso de destino.
unnamedParam5
DstY [in]
Coordenada y del subrecurso de destino. Para subrecursos unidimensionales (1D), DstY se establece en cero.
unnamedParam6
DstZ [in]
Coordenada z del subrecurso de destino. Para subrecursos unidimensionales (1D) y bidimensionales (2D), DstZ está establecido en cero.
unnamedParam7
hSrcResource [in]
Identificador del recurso de origen desde el que se va a copiar.
unnamedParam8
SrcSubresource [in]
Índice que indica el subrecurso de origen desde el que se va a copiar.
unnamedParam9
pSrcBox [in, opcional]
Puntero a una estructura de D3D10_DDI_BOX que especifica un cuadro que se ajusta al subrecurso de origen o de destino. Si pSrcBox es NULL, el controlador debe copiar todo el subrecurso de origen en el destino.
Si los miembros de la estructura de D3D10_DDI_BOX son de modo que >izquierdo =derecha, >superior =inferior, o >frontal =posterior , pSrcBox se considera vacío, y resourceCopyRegion no deben realizar ninguna operación de copia.
Valor devuelto
Ninguno
Observaciones
El controlador puede usar el pfnSetErrorCb función de devolución de llamada para establecer un código de error.
El tiempo de ejecución de Microsoft Direct3D llama a la función ResourceCopyRegi on del controlador de pantalla en modo de usuario para informar al controlador de que se copie desde la región de subrecurso de origen especificada en una ubicación del subrecurso de destino especificado. Los subrecursos de origen y destino no pueden ser el mismo subrecurso del mismo recurso. Tanto los recursos de origen como de destino deben ser el mismo tipo de recurso y deben tener tipos de formato (valores con tipo DXGI_FORMAT) que se pueden convertir entre sí.
Para los búferes, todas las coordenadas deben estar en bytes; mientras que para las texturas, todas las coordenadas deben estar en píxeles. El cuadro al que apunta el parámetro pSrcBox no debe extenderse a través de los bordes de la región de subrecurso de origen o del subrecurso de destino. El origen y el recurso de destino no se deben asignar actualmente. Además, las marcas de creación de recursos restringen si el recurso puede participar en la operación de copia.
El controlador no debe encontrar ningún error, excepto D3DDDIERR_DEVICEREMOVED. Por lo tanto, si el controlador pasa algún error, excepto por D3DDDIERR_DEVICEREMOVED, en una llamada a la función pfnSetErrorCb, el tiempo de ejecución de Direct3D determinará que el error es crítico. Incluso si se quitó el dispositivo, no es necesario que el controlador devuelva D3DDDIERR_DEVICEREMOVED; Sin embargo, si la eliminación de dispositivos interfirió con el funcionamiento de ResourceCopyRegion (que normalmente no debería ocurrir), el controlador puede devolver D3DDDIERR_DEVICEREMOVED.
La versión de Direct3D 10.1 de ResourceCopyRegion tiene una diferencia importante de funcionalidad respecto a la versión de Direct3D 10.0 en relación con el miembro ResourceDimension de D3D10DDIARG_CREATERESOURCE para los recursos de origen y destino que se crearon en llamadas a la función CreateResource(D3D10) del controlador. Para la versión de Direct3D 10.0 de ResourceCopyRegion, el miembro ResourceDimension de D3D10DDIARG_CREATERESOURCE para los recursos de origen y destino debe coincidir. La versión direct3D 10.1 de ResourceCopyRegion permite una ligera relajación para el miembro de ResourceDimension de D3D10DDIARG_CREATERESOURCE para los recursos de origen y destino. La versión de Direct3D 10.1 de ResourceCopyRegion permite copiar recursos de origen de Tex2D en recursos de destino de TexCube o recursos de origen de TexCube en recursos de destino de Tex2D. Además, la distinción entre TexCube en el nivel de recurso ha desaparecido en la versión 10.1 de Direct3D. La versión de Direct3D 10.1 de ResourceCopyRegion solo representa si puede copiar un TexCube. En la versión 10.0 de Direct3D, la copia de un recurso, la validación de un destino de representación múltiple, etc. (es decir, varias operaciones que requerían que el tipo de recurso fuera idéntico) incluían la distinción de TexCube para factorizar en el tipo de recurso. En Direct3D versión 10.1, el entorno de ejecución solo puede determinar Tex2D.
En las secciones siguientes se enumeran las condiciones para copiar y convertir:
copiar
Para copiar, ResourceCopyRegion garantiza que los recursos de origen y destino se crearon a través de la función createResource(D3D10 ) del controlador con las siguientes condiciones:
- El recurso de destino no se creó con el valor D3D10_DDI_USAGE_IMMUTABLE establecido en el miembro Usage de la estructura de D3D10DDIARG_CREATERESOURCE.
- Si el recurso de origen o de destino tiene el D3D10_DDI_BIND_DEPTH_STENCIL bit establecido en el BindFlags miembro del D3D10DDIARG_CREATERESOURCE o es un recurso de ejemplo múltiple, ResourceCopyRegion comprueba que el parámetro pSrcBox es NULL, mientras que los parámetros DstX, DstYy DstZ son 0.
- Los índices de subrecursos están en el intervalo.
- Las restricciones de alineación se aplican a las coordenadas.
- Los recursos de origen y destino no forman parte del mismo subrecurso exacto.
- Cada formato de recurso de origen y destino especificado en el Formato miembro de D3D10DDIARG_CREATERESOURCE está en el mismo grupo sin tipo.
- Los recursos de origen y destino deben tener el mismo número de muestras y niveles de calidad; excepto para los recursos de muestreo único, que solo deben tener el mismo número de muestras.
convertir
Para la conversión, ResourceCopyRegion garantiza que los recursos de origen y destino se crearon a través de la función createResource(D3D10) del controlador con las siguientes condiciones:
- El recurso de destino no se creó con el valor D3D10_DDI_USAGE_IMMUTABLE establecido en el miembro Usage de la estructura de D3D10DDIARG_CREATERESOURCE.
- Si el recurso de origen o de destino tiene el D3D10_DDI_BIND_DEPTH_STENCIL bit establecido en el BindFlags miembro del D3D10DDIARG_CREATERESOURCE o es un recurso de ejemplo múltiple, ResourceCopyRegion comprueba que el parámetro pSrcBox es NULL, mientras que los parámetros DstX, DstYy DstZ son 0.
- Los índices de subrecursos están en el intervalo.
- Las restricciones de alineación se aplican a las coordenadas.
- Los recursos de origen y destino no forman parte del mismo subrecurso exacto.
- Cada formato de recurso de origen y destino especificado en el Formato miembro de D3D10DDIARG_CREATERESOURCE está en el mismo grupo sin tipo.
- Cada formato de recurso de origen y destino especificado en el format miembro de D3D10DDIARG_CREATERESOURCE admite la operación de conversión adecuada.
- Los recursos de origen y destino deben tener el mismo número de muestras y niveles de calidad; excepto para los recursos de muestreo único, que solo deben tener el mismo número de muestras.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Disponible en Windows Vista y versiones posteriores de los sistemas operativos Windows. |
de la plataforma de destino de | Escritorio |
encabezado de | d3d10umddi.h (incluya D3d10umddi.h) |