Skip to content

Commit 2f84f54

Browse files
authored
Add cubemap support for OpenEXR (#483)
1 parent 6e184e2 commit 2f84f54

File tree

1 file changed

+16
-4
lines changed

1 file changed

+16
-4
lines changed

Auxiliary/DirectXTexEXR.cpp

+16-4
Original file line numberDiff line numberDiff line change
@@ -371,23 +371,35 @@ HRESULT DirectX::LoadFromEXRFile(const wchar_t* szFile, TexMetadata* metadata, S
371371

372372
auto const dw = file.dataWindow();
373373

374-
const int width = dw.max.x - dw.min.x + 1;
375-
const int height = dw.max.y - dw.min.y + 1;
374+
int width = dw.max.x - dw.min.x + 1;
375+
int height = dw.max.y - dw.min.y + 1;
376+
size_t arraySize = 1;
376377

377378
if (width < 1 || height < 1)
378379
return E_FAIL;
379380

381+
if (file.header().find("envmap") != file.header().end())
382+
{
383+
if (width == height / 6)
384+
{
385+
height = width;
386+
}
387+
arraySize = 6;
388+
}
389+
380390
if (metadata)
381391
{
382392
metadata->width = static_cast<size_t>(width);
383393
metadata->height = static_cast<size_t>(height);
384-
metadata->depth = metadata->arraySize = metadata->mipLevels = 1;
394+
metadata->depth = metadata->mipLevels = 1;
395+
metadata->arraySize = arraySize;
385396
metadata->format = DXGI_FORMAT_R16G16B16A16_FLOAT;
386397
metadata->dimension = TEX_DIMENSION_TEXTURE2D;
387398
}
388399

389400
hr = image.Initialize2D(DXGI_FORMAT_R16G16B16A16_FLOAT,
390-
static_cast<size_t>(width), static_cast<size_t>(height), 1u, 1u);
401+
static_cast<size_t>(width), static_cast<size_t>(height), arraySize, 1u);
402+
391403
if (FAILED(hr))
392404
return hr;
393405

0 commit comments

Comments
 (0)