Add support for using mipmaps with 3D textures
This commit is contained in:
@@ -431,11 +431,6 @@ bool GPUTexture::Init(const GPUTextureDescription& desc)
|
|||||||
LOG(Warning, "Cannot create texture. Only 2D Texture can be used as a Depth Stencil. Description: {0}", desc.ToString());
|
LOG(Warning, "Cannot create texture. Only 2D Texture can be used as a Depth Stencil. Description: {0}", desc.ToString());
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if (desc.MipLevels != 1)
|
|
||||||
{
|
|
||||||
LOG(Warning, "Cannot create texture. Volume texture cannot have more than 1 mip level. Description: {0}", desc.ToString());
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
if (desc.ArraySize != 1)
|
if (desc.ArraySize != 1)
|
||||||
{
|
{
|
||||||
LOG(Warning, "Cannot create texture. Volume texture cannot create array of volume textures. Description: {0}", desc.ToString());
|
LOG(Warning, "Cannot create texture. Volume texture cannot create array of volume textures. Description: {0}", desc.ToString());
|
||||||
|
|||||||
@@ -732,7 +732,9 @@ void GPUContextDX11::UpdateTexture(GPUTexture* texture, int32 arrayIndex, int32
|
|||||||
auto textureDX11 = static_cast<GPUTextureDX11*>(texture);
|
auto textureDX11 = static_cast<GPUTextureDX11*>(texture);
|
||||||
|
|
||||||
const int32 subresourceIndex = RenderToolsDX::CalcSubresourceIndex(mipIndex, arrayIndex, texture->MipLevels());
|
const int32 subresourceIndex = RenderToolsDX::CalcSubresourceIndex(mipIndex, arrayIndex, texture->MipLevels());
|
||||||
const uint32 depthPitch = texture->IsVolume() ? slicePitch / texture->Depth() : slicePitch;
|
uint32 depthPitch = slicePitch;
|
||||||
|
if (texture->IsVolume())
|
||||||
|
depthPitch /= Math::Max(1, texture->Depth() >> mipIndex);
|
||||||
_context->UpdateSubresource(textureDX11->GetResource(), subresourceIndex, nullptr, data, (UINT)rowPitch, (UINT)depthPitch);
|
_context->UpdateSubresource(textureDX11->GetResource(), subresourceIndex, nullptr, data, (UINT)rowPitch, (UINT)depthPitch);
|
||||||
|
|
||||||
//D3D11_MAPPED_SUBRESOURCE mapped;
|
//D3D11_MAPPED_SUBRESOURCE mapped;
|
||||||
|
|||||||
Reference in New Issue
Block a user