Skip to content

Commit 1c78c7d

Browse files
authored
Additional code review for OpenEXR (#494)
1 parent 2f84f54 commit 1c78c7d

File tree

1 file changed

+15
-4
lines changed

1 file changed

+15
-4
lines changed

Auxiliary/DirectXTexEXR.cpp

+15-4
Original file line numberDiff line numberDiff line change
@@ -265,14 +265,25 @@ HRESULT DirectX::GetMetadataFromEXRFile(const wchar_t* szFile, TexMetadata& meta
265265
const auto dw = file.dataWindow();
266266

267267
const int width = dw.max.x - dw.min.x + 1;
268-
const int height = dw.max.y - dw.min.y + 1;
268+
int height = dw.max.y - dw.min.y + 1;
269+
size_t arraySize = 1;
269270

270271
if (width < 1 || height < 1)
271272
return E_FAIL;
272273

274+
if (file.header().find("envmap") != file.header().end())
275+
{
276+
if (width == height / 6)
277+
{
278+
height = width;
279+
arraySize = 6;
280+
}
281+
}
282+
273283
metadata.width = static_cast<size_t>(width);
274284
metadata.height = static_cast<size_t>(height);
275-
metadata.depth = metadata.arraySize = metadata.mipLevels = 1;
285+
metadata.depth = metadata.mipLevels = 1;
286+
metadata.arraySize = arraySize;
276287
metadata.format = DXGI_FORMAT_R16G16B16A16_FLOAT;
277288
metadata.dimension = TEX_DIMENSION_TEXTURE2D;
278289
}
@@ -371,7 +382,7 @@ HRESULT DirectX::LoadFromEXRFile(const wchar_t* szFile, TexMetadata* metadata, S
371382

372383
auto const dw = file.dataWindow();
373384

374-
int width = dw.max.x - dw.min.x + 1;
385+
const int width = dw.max.x - dw.min.x + 1;
375386
int height = dw.max.y - dw.min.y + 1;
376387
size_t arraySize = 1;
377388

@@ -383,8 +394,8 @@ HRESULT DirectX::LoadFromEXRFile(const wchar_t* szFile, TexMetadata* metadata, S
383394
if (width == height / 6)
384395
{
385396
height = width;
397+
arraySize = 6;
386398
}
387-
arraySize = 6;
388399
}
389400

390401
if (metadata)

0 commit comments

Comments
 (0)