From 61e4107c393a51f889ad3bf04c9fd8b7c4783f59 Mon Sep 17 00:00:00 2001 From: AzaezelX Date: Mon, 24 Mar 2025 11:32:09 -0500 Subject: [PATCH] handle feeding a cubemap via 2d textures courtessey marauder --- Engine/source/gfx/D3D11/gfxD3D11Cubemap.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/Engine/source/gfx/D3D11/gfxD3D11Cubemap.cpp b/Engine/source/gfx/D3D11/gfxD3D11Cubemap.cpp index 82f626be8..e81d972b5 100644 --- a/Engine/source/gfx/D3D11/gfxD3D11Cubemap.cpp +++ b/Engine/source/gfx/D3D11/gfxD3D11Cubemap.cpp @@ -112,6 +112,19 @@ void GFXD3D11Cubemap::_init(U32 size, GFXFormat format, U32 mipLevels, bool isDy delete[] pData; AssertFatal(SUCCEEDED(hr), "GFXD3D11Cubemap::_init - CreateTexture2D failed"); + if (faces) + { + for (U32 i = 0; i < CubeFaces; i++) + { + GFXD3D11TextureObject* texObj = static_cast((GFXTextureObject*)faces[i]); + for (U32 currentMip = 0; currentMip < mMipMapLevels; currentMip++) + { + U32 subResource = D3D11CalcSubresource(currentMip, i, mMipMapLevels); + D3D11DEVICECONTEXT->CopySubresourceRegion(mTexture, subResource, 0, 0, 0, texObj->get2DTex(), currentMip, NULL); + } + } + } + D3D11_SHADER_RESOURCE_VIEW_DESC viewDesc = {}; viewDesc.Format = GFXD3D11TextureFormat[mFaceFormat]; viewDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURECUBE;