CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT Interface

A templated helper structure used to encapsulate subobject type and subobject data pairs as a single object suitable for a stream description.

Syntax

interface CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT  

Remarks

CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT is a template defined as follows:

template <typename InnerStructType, D3D12_PIPELINE_STATE_SUBOBJECT_TYPE Type, typename DefaultArg = InnerStructType>
class alignas(void*) CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT
{
private:
    D3D12_PIPELINE_STATE_SUBOBJECT_TYPE _Type;
    InnerStructType _Inner;
public:
    CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT() : _Type(Type), _Inner(DefaultArg()) {}
    CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT(InnerStructType const& i) : _Type(Type), _Inner(i) {}
    CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT& operator=(InnerStructType const& i) { _Inner = i; return *this; }
    operator InnerStructType() const { return _Inner; }
};  

The template parameter InnerStructType specifies the subobject data type; that is, the subobject details to be encoded into a stream. The template parameter Type specifies the subobject type; that is, the type of the structure specified by the template parameter InnerStructType. The template parameter DefaultArg specifies an optional value that the subobject data will be initialized to when an instance of the the corresponding template instantiation is default-constructed; for example, to default-construct a CD3DX12_PIPELINE_STATE_STREAM_BLEND_DESC initialized with common blend-state defaults using CD3DX12_DEFAULT.

This interface contains the same methods on XBox One and on Windows, but the XBox One defines additional, Xbox-specific template instantiations.

Here’s how the Xbox-specific template instantiations are defined:

typedef CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT<
    CD3DX12_VIEW_INSTANCING_DESC, D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VIEW_INSTANCING,
    CD3DX12_DEFAULT
> CD3DX12_PIPELINE_STATE_STREAM_VIEW_INSTANCING;
  
typedef CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT<
    CD3D12XBOX_PIXEL_SHADER_OPTIONS_DESC, D3D12XBOX_PIPELINE_STATE_SUBOBJECT_TYPE_PIXEL_SHADER_OPTIONS
> CD3DX12_PIPELINE_STATE_STREAM_PIXEL_SHADER_OPTIONS;

typedef CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT<
    CD3D12XBOX_DEPTH_STENCIL_OPTIONS_DESC, D3D12XBOX_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL_OPTIONS
> CD3DX12_PIPELINE_STATE_STREAM_DEPTH_STENCIL_OPTIONS;

typedef CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT<
    CD3D12XBOX_TESSELLATION_PARAMETERS_DESC, D3D12XBOX_PIPELINE_STATE_SUBOBJECT_TYPE_TESSELLATION_PARAMETERS
> CD3DX12_PIPELINE_STATE_STREAM_TESSELLATION_PARAMETERS;

typedef CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT<
    CD3D12XBOX_GRAPHICS_SHADER_LIMITS_DESC, D3D12XBOX_PIPELINE_STATE_SUBOBJECT_TYPE_GRAPHICS_SHADER_LIMITS
> CD3DX12_PIPELINE_STATE_STREAM_GRAPHICS_SHADER_LIMITS;

typedef CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT<
    CD3D12XBOX_COMPUTE_SHADER_LIMITS_DESC, D3D12XBOX_PIPELINE_STATE_SUBOBJECT_TYPE_COMPUTE_SHADER_LIMITS
> CD3DX12_PIPELINE_STATE_STREAM_COMPUTE_SHADER_LIMITS;  

The CD3DX12_PIPELINE_STATE_STREAM_VIEW_INSTANCING, structure is defined to initialize its subobject data with common defaults using CD3DX12_DEFAULT.

Requirements

Header: Declared in d3dx12_x.h.

See also

CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT (Windows)