Compartir a través de


PFND3D10DDI_RESOURCECOPY función de devolución de llamada (d3d10umddi.h)

La función ResourceCopy copia un recurso de origen completo en un recurso de destino.

Sintaxis

PFND3D10DDI_RESOURCECOPY Pfnd3d10ddiResourcecopy;

void Pfnd3d10ddiResourcecopy(
  D3D10DDI_HDEVICE unnamedParam1,
  D3D10DDI_HRESOURCE unnamedParam2,
  D3D10DDI_HRESOURCE unnamedParam3
)
{...}

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

hSrcResource [in]

Identificador del recurso de origen desde el que se va a copiar.

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 entorno de ejecución de Microsoft Direct3D llama a la función Resource Copy del controlador de visualización en modo de usuario para informar al controlador de que se copie del recurso de origen especificado en el recurso de destino especificado. Los recursos de origen y destino no pueden ser el mismo recurso. Tanto los recursos de origen como de destino deben ser el mismo tipo de recurso y tener las mismas dimensiones. Los tipos de formato (valores con tipo DXGI_FORMAT) de ambos recursos se deben convertir entre sí. 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 resourceCopy (que normalmente no debería ocurrir), el controlador puede devolver D3DDDIERR_DEVICEREMOVED.

Nota Las secciones siguientes solo se aplican a Microsoft Direct3D versión 10.1 y posteriores (es decir, Windows Vista con Service Pack 1 (SP1) y versiones posteriores, y Windows Server 2008 y versiones posteriores).
 
El controlador puede implementar una función de ResourceCopy que puede contener un conmutador de instrucción para procesar la copia y la conversión. Es decir, el controlador puede implementar un ResourceCopy y puede establecer el miembro pfnResourceConvert de la estructura de D3D10_1DDI_DEVICEFUNCS para que apunte a resourceCopy junto con el miembro pfnResourceCopy de D3D10_1DDI_DEVICEFUNCS. Sin embargo, para mejorar el rendimiento, el controlador puede implementar funciones independientes de ResourceCopy y ResourceConvert.

La versión de Direct3D 10.1 de ResourceCopy tiene una diferencia de funcionalidad importante respecto a la versión direct3D 10.0 en lo que respecta a la ResourceDimension miembro 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 ResourceCopy, el miembro ResourceDimension de D3D10DDIARG_CREATERESOURCE para los recursos de origen y destino debe coincidir. La versión direct3D 10.1 de ResourceCopy 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 ResourceCopy 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 ResourceCopy 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, resourceCopy 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.
  • Los recursos de origen y destino se crearon con el mismo tipo de recurso y dimensionalidad (búfer, textura unidimensional (1D), estableciendo el mismo valor en el resourceDimension miembro de D3D10DDIARG_CREATERESOURCE.
  • Los recursos de origen y destino no forman parte del mismo recurso exactamente.
  • 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.
ResourceCopy no garantiza que no haya ningún subrecurso actualmente asignado.

convertir

Para la conversión, resourceCopy 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.
  • Los recursos de origen y destino se crearon con el mismo tipo de recurso (búfer, textura unidimensional (1D), estableciendo el mismo valor en el resourceDimension miembro de D3D10DDIARG_CREATERESOURCE.
  • Las dimensiones de los recursos de origen y destino coinciden con la conversión.
  • Los recursos de origen y destino no forman parte del mismo recurso exactamente.
  • Cada formato de recurso de origen y destino especificado en el format miembro de D3D10DDIARG_CREATERESOURCE admite la operación de conversión adecuada. En el caso de los recursos comprimidos de bloque mipped, todas las dimensiones se validan para que sean una potencia de dos.
  • 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.
ResourceCopy no garantiza que no haya ningún subrecurso actualmente asignado.

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)

Consulte también

CreateResource(D3D10)

D3D10DDIARG_CREATERESOURCE

D3D10DDI_DEVICEFUNCS

D3D10_1DDI_DEVICEFUNCS

pfnSetErrorCb de