mirror of
https://github.com/bkaradzic/bgfx.git
synced 2026-10-23 09:20:50 +00:00
Cubemap as Texture Array
Cubemap's UAV are texture arrays
This commit is contained in:
@@ -1401,8 +1401,9 @@ namespace bgfx { namespace d3d12
|
||||
{
|
||||
}
|
||||
|
||||
void readTexture(TextureHandle _handle, void* _data) BX_OVERRIDE
|
||||
void readTexture(TextureHandle _handle, void* _data, uint8_t _mip) BX_OVERRIDE
|
||||
{
|
||||
_mip;
|
||||
const TextureD3D12& texture = m_textures[_handle.idx];
|
||||
|
||||
D3D12_RESOURCE_DESC desc = texture.m_ptr->GetDesc();
|
||||
@@ -3012,6 +3013,7 @@ data.NumQualityLevels = 0;
|
||||
|
||||
D3D12_UNORDERED_ACCESS_VIEW_DESC tmpUavd;
|
||||
D3D12_UNORDERED_ACCESS_VIEW_DESC* uavd = &_texture.m_uavd;
|
||||
|
||||
if (0 != _mip)
|
||||
{
|
||||
memcpy(&tmpUavd, uavd, sizeof(tmpUavd) );
|
||||
@@ -3024,6 +3026,10 @@ data.NumQualityLevels = 0;
|
||||
uavd->Texture2D.MipSlice = _mip;
|
||||
uavd->Texture2D.PlaneSlice = 0;
|
||||
break;
|
||||
case D3D12_UAV_DIMENSION_TEXTURE2DARRAY:
|
||||
uavd->Texture2DArray.MipSlice = _mip;
|
||||
uavd->Texture2DArray.PlaneSlice = 0;
|
||||
break;
|
||||
|
||||
case D3D12_UAV_DIMENSION_TEXTURE3D:
|
||||
uavd->Texture3D.MipSlice = _mip;
|
||||
@@ -4239,6 +4245,14 @@ data.NumQualityLevels = 0;
|
||||
m_uavd.Texture2D.MipSlice = 0;
|
||||
m_uavd.Texture2D.PlaneSlice = 0;
|
||||
}
|
||||
|
||||
if( m_type==TextureCube )
|
||||
{
|
||||
m_uavd.ViewDimension = D3D12_UAV_DIMENSION_TEXTURE2DARRAY;
|
||||
m_uavd.Texture2DArray.MipSlice = 0;
|
||||
m_uavd.Texture2DArray.ArraySize = 6;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case Texture3D:
|
||||
|
||||
Reference in New Issue
Block a user