CD3D11_RESOURCE_DESC class
[This documentation is preliminary and is subject to change.]
Represents a D3D11 resource and provides convenience methods for using these resources in D3D12.
When to implement
Implement this class to reuse DirectX 11 resources in a DirectX 12 app. The initialization methods reference the following methods and enums:
Members
The CD3D11_RESOURCE_DESC class inherits from D3D11_RESOURCE_DESC. CD3D11_RESOURCE_DESC also has these types of members:
- Methods
- Operators
Methods
The CD3D11_RESOURCE_DESC class has these methods.
Method | Description |
---|---|
~CD3D11_RESOURCE_DESC() | Destroys an instance of a CD3D11_RESOURCE_DESC structure. |
CD3D11_RESOURCE_DESC() | Instantiates a new instance of an uninitialized CD3D11_RESOURCE_DESC structure. |
CD3D11_RESOURCE_DESC(const CD3D11_BUFFER_DESC) | Instantiates a new instance of a CD3D11_RESOURCE_DESC structure that is initialized with a CD3D11_BUFFER_DESC structure. |
CD3D11_RESOURCE_DESC(const CD3D11_TEXTURE1D_DESC) | Instantiates a new instance of a CD3D11_RESOURCE_DESC structure that is initialized with a CD3D11_TEXTURE1D_DESC structure. |
CD3D11_RESOURCE_DESC(const CD3D11_TEXTURE2D_DESC) | Instantiates a new instance of a CD3D11_RESOURCE_DESC structure that is initialized with a CD3D11_TEXTURE2D_DESC structure. |
CD3D11_RESOURCE_DESC(const CD3D11_TEXTURE3D_DESC) | Instantiates a new instance of a CD3D11_RESOURCE_DESC structure that is initialized with a CD3D11_TEXTURE3D_DESC structure. |
CD3D11_RESOURCE_DESC(const D3D11_BUFFER_DESC) | Instantiates a new instance of a CD3D11_RESOURCE_DESC structure that is initialized with a D3D11_BUFFER_DESC structure. |
CD3D11_RESOURCE_DESC(const D3D11_RESOURCE_DESC) | Instantiates a new instance of a CD3D11_RESOURCE_DESC structure that is initialized with a D3D11_RESOURCE_DESC structure. |
CD3D11_RESOURCE_DESC(const D3D11_TEXTURE1D_DESC) | Instantiates a new instance of a CD3D11_RESOURCE_DESC structure that is initialized with a D3D11_TEXTURE1D_DESC structure. |
CD3D11_RESOURCE_DESC(const D3D11_TEXTURE2D_DESC) | Instantiates a new instance of a CD3D11_RESOURCE_DESC structure that is initialized with a D3D11_TEXTURE2D_DESC structure. |
CD3D11_RESOURCE_DESC(const D3D11_TEXTURE3D_DESC) | Instantiates a new instance of a CD3D11_RESOURCE_DESC structure that is initialized with a D3D11_TEXTURE3D_DESC structure. |
CD3D11_RESOURCE_DESC(const D3D12_RESOURCE_DESC) | Instantiates a new instance of a CD3D11_RESOURCE_DESC structure that is initialized with a D3D12_RESOURCE_DESC structure. |
ConvertD3D12Info | Converts Direct3D 12 info to Direct3D 11 bind flags (D3D11_BIND_FLAG) and resource flags (D3D11_RESOURCE_MISC_FLAG). |
Operators
The CD3D11_RESOURCE_DESC class has these operators.
Operator | Description |
---|---|
operator CD3D12_RESOURCE_DESC() | This operator returns a CD3D12_RESOURCE_DESC structure that contains data from the CD3D11_RESOURCE_DESC instance. |
operator const D3D11_RESOURCE_DESC&() | This operator returns the address of a D3D11_RESOURCE_DESC structure that contains data from the CD3D11_RESOURCE_DESC instance. |
operator D3D12_RESOURCE_DESC() | This operator returns a D3D12_RESOURCE_DESC structure that contains data from the CD3D11_RESOURCE_DESC instance. |
Remarks
Here is how D3D12.h defines CD3D11_RESOURCE_DESC:
struct CD3D11_RESOURCE_DESC : public D3D11_RESOURCE_DESC
{
CD3D11_RESOURCE_DESC()
{}
explicit CD3D11_RESOURCE_DESC( const D3D11_RESOURCE_DESC& o ) :
D3D11_RESOURCE_DESC( o )
{}
void ConvertD3D12Info( D3D12_TEXTURE_LAYOUT layout, D3D12_RESOURCE_MISC_FLAG miscFlags ) { ... }
CD3D11_RESOURCE_DESC( const D3D12_RESOURCE_DESC& o )
{
switch (o.Dimension)
{
case D3D12_RESOURCE_DIMENSION_BUFFER: Dimension = D3D11_RESOURCE_DIMENSION_BUFFER; break;
case D3D12_RESOURCE_DIMENSION_TEXTURE_1D: Dimension = D3D11_RESOURCE_DIMENSION_TEXTURE1D; break;
case D3D12_RESOURCE_DIMENSION_TEXTURE_2D: Dimension = D3D11_RESOURCE_DIMENSION_TEXTURE2D; break;
case D3D12_RESOURCE_DIMENSION_TEXTURE_3D: Dimension = D3D11_RESOURCE_DIMENSION_TEXTURE3D; break;
default: Dimension = D3D11_RESOURCE_DIMENSION_UNKNOWN; break;
}
Width = UINT( o.Width );
Height = o.Height;
Depth = (Dimension == D3D11_RESOURCE_DIMENSION_TEXTURE3D ? o.DepthOrArraySize : 1);
MipLevels = o.MipLevels;
ArraySize = (Dimension == D3D11_RESOURCE_DIMENSION_TEXTURE3D ? 1 : o.DepthOrArraySize);
Format = o.Format;
SampleDesc = o.SampleDesc;
Usage = D3D11_USAGE_DEFAULT;
BindFlags = 0;
CPUAccessFlags = 0;
MiscFlags = 0;
StructureByteStride = 0;
ConvertD3D12Info( o.Layout, o.MiscFlags );
}
CD3D11_RESOURCE_DESC( const D3D11_BUFFER_DESC& o )
{
Dimension = D3D11_RESOURCE_DIMENSION_BUFFER;
Width = o.ByteWidth;
Height = 1;
Depth = 1;
MipLevels = 1;
ArraySize = 1;
Format = DXGI_FORMAT_UNKNOWN;
SampleDesc.Count = 1;
SampleDesc.Quality = 0;
Usage = o.Usage;
BindFlags = o.BindFlags;
CPUAccessFlags = o.CPUAccessFlags;
MiscFlags = o.MiscFlags;
StructureByteStride = o.StructureByteStride;
}
CD3D11_RESOURCE_DESC( const CD3D11_BUFFER_DESC& o )
{
Dimension = D3D11_RESOURCE_DIMENSION_BUFFER;
Width = o.ByteWidth;
Height = 1;
Depth = 1;
MipLevels = 1;
ArraySize = 1;
Format = DXGI_FORMAT_UNKNOWN;
SampleDesc.Count = 1;
SampleDesc.Quality = 0;
Usage = o.Usage;
BindFlags = o.BindFlags;
CPUAccessFlags = o.CPUAccessFlags;
MiscFlags = o.MiscFlags;
StructureByteStride = o.StructureByteStride;
}
CD3D11_RESOURCE_DESC( const D3D11_TEXTURE1D_DESC& o )
{
Dimension = D3D11_RESOURCE_DIMENSION_TEXTURE1D;
Width = o.Width;
Height = 1;
Depth = 1;
MipLevels = o.MipLevels;
ArraySize = o.ArraySize;
Format = o.Format;
SampleDesc.Count = 1;
SampleDesc.Quality = 0;
Usage = o.Usage;
BindFlags = o.BindFlags;
CPUAccessFlags = o.CPUAccessFlags;
MiscFlags = o.MiscFlags;
StructureByteStride = 0;
}
CD3D11_RESOURCE_DESC( const CD3D11_TEXTURE1D_DESC& o )
{
Dimension = D3D11_RESOURCE_DIMENSION_TEXTURE1D;
Width = o.Width;
Height = 1;
Depth = 1;
MipLevels = o.MipLevels;
ArraySize = o.ArraySize;
Format = o.Format;
SampleDesc.Count = 1;
SampleDesc.Quality = 0;
Usage = o.Usage;
BindFlags = o.BindFlags;
CPUAccessFlags = o.CPUAccessFlags;
MiscFlags = o.MiscFlags;
StructureByteStride = 0;
}
CD3D11_RESOURCE_DESC( const D3D11_TEXTURE2D_DESC& o )
{
Dimension = D3D11_RESOURCE_DIMENSION_TEXTURE2D;
Width = o.Width;
Height = o.Height;
Depth = 1;
MipLevels = o.MipLevels;
ArraySize = o.ArraySize;
Format = o.Format;
SampleDesc = o.SampleDesc;
Usage = o.Usage;
BindFlags = o.BindFlags;
CPUAccessFlags = o.CPUAccessFlags;
MiscFlags = o.MiscFlags;
StructureByteStride = 0;
}
CD3D11_RESOURCE_DESC( const CD3D11_TEXTURE2D_DESC& o )
{
Dimension = D3D11_RESOURCE_DIMENSION_TEXTURE2D;
Width = o.Width;
Height = o.Height;
Depth = 1;
MipLevels = o.MipLevels;
ArraySize = o.ArraySize;
Format = o.Format;
SampleDesc = o.SampleDesc;
Usage = o.Usage;
BindFlags = o.BindFlags;
CPUAccessFlags = o.CPUAccessFlags;
MiscFlags = o.MiscFlags;
StructureByteStride = 0;
}
CD3D11_RESOURCE_DESC( const D3D11_TEXTURE3D_DESC& o )
{
Dimension = D3D11_RESOURCE_DIMENSION_TEXTURE3D;
Width = o.Width;
Height = o.Height;
Depth = o.Depth;
MipLevels = o.MipLevels;
ArraySize = 1;
Format = o.Format;
SampleDesc.Count = 1;
SampleDesc.Quality = 0;
Usage = o.Usage;
BindFlags = o.BindFlags;
CPUAccessFlags = o.CPUAccessFlags;
MiscFlags = o.MiscFlags;
StructureByteStride = 0;
}
CD3D11_RESOURCE_DESC( const CD3D11_TEXTURE3D_DESC& o )
{
Dimension = D3D11_RESOURCE_DIMENSION_TEXTURE3D;
Width = o.Width;
Height = o.Height;
Depth = o.Depth;
MipLevels = o.MipLevels;
ArraySize = 1;
Format = o.Format;
SampleDesc.Count = 1;
SampleDesc.Quality = 0;
Usage = o.Usage;
BindFlags = o.BindFlags;
CPUAccessFlags = o.CPUAccessFlags;
MiscFlags = o.MiscFlags;
StructureByteStride = 0;
}
~CD3D11_RESOURCE_DESC() {}
operator const D3D11_RESOURCE_DESC&() const { return *this; }
operator CD3D12_RESOURCE_DESC() const { ... }
operator D3D12_RESOURCE_DESC() const { return D3D12_RESOURCE_DESC( this->operator CD3D12_RESOURCE_DESC() ); }
};
Note that the header d3d12.h imports the header d3d11_3.h.
Requirements
Header |
D3D12.h |