Método ID3D11DeviceContext::OMSetRenderTargetsAndUnorderedAccessViews (d3d11.h)

Enlaza los recursos a la fase de fusión de salida.

Sintaxis

void OMSetRenderTargetsAndUnorderedAccessViews(
  [in]           UINT                      NumRTVs,
  [in, optional] ID3D11RenderTargetView    * const *ppRenderTargetViews,
  [in, optional] ID3D11DepthStencilView    *pDepthStencilView,
  [in]           UINT                      UAVStartSlot,
  [in]           UINT                      NumUAVs,
  [in, optional] ID3D11UnorderedAccessView * const *ppUnorderedAccessViews,
  [in, optional] const UINT                *pUAVInitialCounts
);

Parámetros

[in] NumRTVs

Tipo: UINT

Número de destinos de representación que se van a enlazar (intervalos entre 0 y D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT). Si este parámetro es distinto de cero, el número de entradas de la matriz a la que apunta ppRenderTargetViews debe ser igual al número de este parámetro. Si establece NumRTVs en D3D11_KEEP_RENDER_TARGETS_AND_DEPTH_STENCIL (0xffffffff), este método no modifica las vistas de destino de representación (RTV) enlazadas actualmente y tampoco modifica la vista de galería de símbolos de profundidad (DSV).

[in, optional] ppRenderTargetViews

Tipo: ID3D11RenderTargetView*

Puntero a una matriz de ID3D11RenderTargetViews que representan los destinos de representación para enlazar al dispositivo. Si este parámetro es NULL y NumRTVs es 0, no se enlaza ningún destino de representación.

[in, optional] pDepthStencilView

Tipo: ID3D11DepthStencilView*

Puntero a un id3D11DepthStencilView que representa la vista de galería de símbolos de profundidad que se va a enlazar al dispositivo. Si este parámetro es NULL, la vista de galería de símbolos de profundidad no está enlazada.

[in] UAVStartSlot

Tipo: UINT

Indexe en una matriz de base cero para empezar a establecer vistas de acceso sin ordenar (oscila entre 0 y D3D11_PS_CS_UAV_REGISTER_COUNT - 1).

Para el entorno de ejecución de Direct3D 11.1, que está disponible a partir de Windows 8, este valor puede oscilar entre 0 y D3D11_1_UAV_SLOT_COUNT - 1. D3D11_1_UAV_SLOT_COUNT se define como 64.

En el caso de los sombreadores de píxeles, UAVStartSlot debe ser igual al número de vistas de destino de representación enlazadas.

[in] NumUAVs

Tipo: UINT

Número de vistas de acceso sin ordenar (UAV) en ppUnorderedAccessViews. Si establece NumUAVs en D3D11_KEEP_UNORDERED_ACCESS_VIEWS (0xffffffff), este método no modifica las vistas de acceso sin ordenar enlazadas actualmente.

Para el entorno de ejecución de Direct3D 11.1, que está disponible a partir de Windows 8, este valor puede oscilar entre 0 y D3D11_1_UAV_SLOT_COUNT - UAVStartSlot.

[in, optional] ppUnorderedAccessViews

Tipo: ID3D11UnorderedAccessView*

Puntero a una matriz de ID3D11UnorderedAccessViews que representan las vistas de acceso sin ordenar que se enlazan al dispositivo. Si este parámetro es NULL y NumUAVs es 0, no se enlazan vistas de acceso desordenadas.

[in, optional] pUAVInitialCounts

Tipo: const UINT*

Matriz de desplazamientos de búfer anexados y consumo. Un valor de -1 indica que se mantiene el desplazamiento actual. Cualquier otro valor establezca el contador oculto para ese UAV anexable y consumible. pUAVInitialCounts solo es relevante para los UMV creados con D3D11_BUFFER_UAV_FLAG_APPEND o D3D11_BUFFER_UAV_FLAG_COUNTER especificados cuando se creó el UAV; de lo contrario, se omite el argumento .

Valor devuelto

None

Observaciones

En el caso de los sombreadores de píxeles, los destinos de representación y las vistas de acceso sin ordenar comparten las mismas ranuras de recursos cuando se escriben. Esto significa que los UMV deben tener un desplazamiento para que se coloquen en las ranuras después de las vistas de destino de representación enlazadas.

Nota Los RTV, DSV y UAV no se pueden establecer de forma independiente; todos deben establecerse al mismo tiempo.
 
Dos RTV entran en conflicto si comparten un subrecurso (y, por tanto, comparten el mismo recurso).

Dos UAV entran en conflicto si comparten un subrecurso (y, por tanto, comparten el mismo recurso).

Un RTV entra en conflicto con un UAV si comparten un subrecurso o comparten un punto de enlace.

OMSetRenderTargetsAndUnorderedAccessViews funciona correctamente en las situaciones siguientes:

  1. NumRTVs != D3D11_KEEP_RENDER_TARGETS_AND_DEPTH_STENCIL y NumUAVs != D3D11_KEEP_UNORDERED_ACCESS_VIEWS

    Las condiciones siguientes deben ser verdaderas para que OMSetRenderTargetsAndUnorderedAccessViews se realice correctamente y para que el tiempo de ejecución pase la información de enlace al controlador:

    • NumRTVs<= 8
    • UAVStartSlot>= NumRTVs
    • UAVStartSlot + NumUAVs<= 8
    • No debe haber ningún conflicto en el conjunto de todas las ppRenderTargetViews y ppUnorderedAccessViews.
    • ppDepthStencilView debe coincidir con las vistas de destino de representación. Para obtener más información sobre las vistas de recursos, vea Introducción a un recurso en Direct3D 11.
    OMSetRenderTargetsAndUnorderedAccessViews realiza las siguientes tareas:
    • Desenlace todos los recursos en conflicto enlazados actualmente (recursos de destino de salida de flujo (SOTargets), UAV del sombreador de proceso (CS), vistas de recursos de sombreador (SRV)).
    • Enlaza ppRenderTargetViews, ppDepthStencilView y ppUnorderedAccessViews.
  2. NumRTVs == D3D11_KEEP_RENDER_TARGETS_AND_DEPTH_STENCIL

    En esta situación, OMSetRenderTargetsAndUnorderedAccessViews enlaza solo uaV.

    Las condiciones siguientes deben ser verdaderas para que OMSetRenderTargetsAndUnorderedAccessViews se realice correctamente y para que el tiempo de ejecución pase la información de enlace al controlador:

    • UAVStartSlot + NumUAVs<= 8
    • No debe haber ningún conflicto en ppUnorderedAccessViews.
    OMSetRenderTargetsAndUnorderedAccessViews desenlace los siguientes elementos:
    • Todos los RTV en ranuras >= UAVStartSlot
    • Todos los RTV que entran en conflicto con las UAV de ppUnorderedAccessViews
    • Todos los recursos enlazados actualmente (SOTargets, UAV de CS, SRV) que entran en conflicto con ppUnorderedAccessViews
    OMSetRenderTargetsAndUnorderedAccessViews enlaza ppUnorderedAccessViews.

    OMSetRenderTargetsAndUnorderedAccessViews omite ppDepthStencilView y la vista de galería de símbolos de profundidad actual permanece enlazada.

  3. NumUAVs == D3D11_KEEP_UNORDERED_ACCESS_VIEWS

    En esta situación, OMSetRenderTargetsAndUnorderedAccessViews enlaza solo RTV y DSV.

    Las condiciones siguientes deben ser verdaderas para que OMSetRenderTargetsAndUnorderedAccessViews se realice correctamente y para que el tiempo de ejecución pase la información de enlace al controlador:

    • NumRTVs<= 8
    • No debe haber ningún conflicto en ppRenderTargetViews.
    • ppDepthStencilView debe coincidir con las vistas de destino de representación. Para obtener más información sobre las vistas de recursos, vea Introducción a un recurso en Direct3D 11.
    OMSetRenderTargetsAndUnorderedAccessViews desenlace los siguientes elementos:
    • Todos los UAV en ranuras <NumRTVs
    • Todos los UAV que entran en conflicto con cualquier RTV en ppRenderTargetViews
    • Todos los recursos enlazados actualmente (SOTargets, UAV de CS, SRV) que entran en conflicto con ppRenderTargetViews
    OMSetRenderTargetsAndUnorderedAccessViews enlaza ppRenderTargetViews y ppDepthStencilView.

    OMSetRenderTargetsAndUnorderedAccessViews omite UAVStartSlot.

Windows Phone 8: se admite esta API.

Requisitos

Requisito Value
Plataforma de destino Windows
Encabezado d3d11.h
Library D3D11.lib

Consulte también

ID3D11DeviceContext