mirror of
https://github.com/microsoft/DirectXTex.git
synced 2025-07-13 21:50:13 +02:00
Code review feedback
This commit is contained in:
parent
7275893dbe
commit
481fe3afe0
@ -192,7 +192,10 @@ HRESULT DirectX::FlipRotate(
|
|||||||
|
|
||||||
const Image *rimage = image.GetImage(0, 0, 0);
|
const Image *rimage = image.GetImage(0, 0, 0);
|
||||||
if (!rimage)
|
if (!rimage)
|
||||||
|
{
|
||||||
|
image.Release();
|
||||||
return E_POINTER;
|
return E_POINTER;
|
||||||
|
}
|
||||||
|
|
||||||
WICPixelFormatGUID pfGUID;
|
WICPixelFormatGUID pfGUID;
|
||||||
if (_DXGIToWIC(srcImage.format, pfGUID))
|
if (_DXGIToWIC(srcImage.format, pfGUID))
|
||||||
|
@ -31,6 +31,7 @@
|
|||||||
// we support only that one as that's what other Radiance parsing code does as well.
|
// we support only that one as that's what other Radiance parsing code does as well.
|
||||||
//
|
//
|
||||||
|
|
||||||
|
//Uncomment to disable the use of adapative RLE encoding when writing an HDR. Used for testing only.
|
||||||
//#define DISABLE_COMPRESS
|
//#define DISABLE_COMPRESS
|
||||||
|
|
||||||
using namespace DirectX;
|
using namespace DirectX;
|
||||||
@ -503,6 +504,11 @@ HRESULT DirectX::LoadFromHDRMemory(const void* pSource, size_t size, TexMetadata
|
|||||||
size_t pixelLen = remaining;
|
size_t pixelLen = remaining;
|
||||||
|
|
||||||
const Image* img = image.GetImage(0, 0, 0);
|
const Image* img = image.GetImage(0, 0, 0);
|
||||||
|
if (!img)
|
||||||
|
{
|
||||||
|
image.Release();
|
||||||
|
return E_POINTER;
|
||||||
|
}
|
||||||
|
|
||||||
auto destPtr = img->pixels;
|
auto destPtr = img->pixels;
|
||||||
|
|
||||||
@ -530,6 +536,7 @@ HRESULT DirectX::LoadFromHDRMemory(const void* pSource, size_t size, TexMetadata
|
|||||||
// Adaptive Run Length Encoding (RLE)
|
// Adaptive Run Length Encoding (RLE)
|
||||||
if (size_t((inColor[2] << 8) + inColor[3]) != mdata.width)
|
if (size_t((inColor[2] << 8) + inColor[3]) != mdata.width)
|
||||||
{
|
{
|
||||||
|
image.Release();
|
||||||
return E_FAIL;
|
return E_FAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -540,6 +547,7 @@ HRESULT DirectX::LoadFromHDRMemory(const void* pSource, size_t size, TexMetadata
|
|||||||
{
|
{
|
||||||
if (pixelLen < 2)
|
if (pixelLen < 2)
|
||||||
{
|
{
|
||||||
|
image.Release();
|
||||||
return E_FAIL;
|
return E_FAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -551,6 +559,7 @@ HRESULT DirectX::LoadFromHDRMemory(const void* pSource, size_t size, TexMetadata
|
|||||||
runLen &= 127;
|
runLen &= 127;
|
||||||
if (pixelCount + runLen > mdata.width)
|
if (pixelCount + runLen > mdata.width)
|
||||||
{
|
{
|
||||||
|
image.Release();
|
||||||
return E_FAIL;
|
return E_FAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -566,6 +575,7 @@ HRESULT DirectX::LoadFromHDRMemory(const void* pSource, size_t size, TexMetadata
|
|||||||
}
|
}
|
||||||
else if ((size < size_t(runLen + 1)) || ((pixelCount + runLen) > mdata.width))
|
else if ((size < size_t(runLen + 1)) || ((pixelCount + runLen) > mdata.width))
|
||||||
{
|
{
|
||||||
|
image.Release();
|
||||||
return E_FAIL;
|
return E_FAIL;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -602,6 +612,7 @@ HRESULT DirectX::LoadFromHDRMemory(const void* pSource, size_t size, TexMetadata
|
|||||||
size_t spanLen = inColor[3] << bitShift;
|
size_t spanLen = inColor[3] << bitShift;
|
||||||
if (spanLen + pixelCount > mdata.width)
|
if (spanLen + pixelCount > mdata.width)
|
||||||
{
|
{
|
||||||
|
image.Release();
|
||||||
return E_FAIL;
|
return E_FAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -633,6 +644,7 @@ HRESULT DirectX::LoadFromHDRMemory(const void* pSource, size_t size, TexMetadata
|
|||||||
|
|
||||||
if (pixelLen < 4)
|
if (pixelLen < 4)
|
||||||
{
|
{
|
||||||
|
image.Release();
|
||||||
return E_FAIL;
|
return E_FAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -794,7 +806,10 @@ HRESULT DirectX::SaveToHDRMemory(const Image& image, Blob& blob)
|
|||||||
#else
|
#else
|
||||||
std::unique_ptr<uint8_t[]> temp(new (std::nothrow) uint8_t[rowPitch * 2]);
|
std::unique_ptr<uint8_t[]> temp(new (std::nothrow) uint8_t[rowPitch * 2]);
|
||||||
if (!temp)
|
if (!temp)
|
||||||
|
{
|
||||||
|
blob.Release();
|
||||||
return E_OUTOFMEMORY;
|
return E_OUTOFMEMORY;
|
||||||
|
}
|
||||||
|
|
||||||
auto rgbe = temp.get();
|
auto rgbe = temp.get();
|
||||||
auto enc = temp.get() + rowPitch;
|
auto enc = temp.get() + rowPitch;
|
||||||
@ -821,7 +836,10 @@ HRESULT DirectX::SaveToHDRMemory(const Image& image, Blob& blob)
|
|||||||
|
|
||||||
hr = blob.Trim(dPtr - reinterpret_cast<uint8_t*>(blob.GetBufferPointer()));
|
hr = blob.Trim(dPtr - reinterpret_cast<uint8_t*>(blob.GetBufferPointer()));
|
||||||
if (FAILED(hr))
|
if (FAILED(hr))
|
||||||
|
{
|
||||||
|
blob.Release();
|
||||||
return hr;
|
return hr;
|
||||||
|
}
|
||||||
|
|
||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
@ -1076,11 +1076,17 @@ HRESULT DirectX::LoadFromTGAFile(
|
|||||||
assert(image.GetImageCount() == 1);
|
assert(image.GetImageCount() == 1);
|
||||||
const Image* img = image.GetImage(0, 0, 0);
|
const Image* img = image.GetImage(0, 0, 0);
|
||||||
if (!img)
|
if (!img)
|
||||||
|
{
|
||||||
|
image.Release();
|
||||||
return E_POINTER;
|
return E_POINTER;
|
||||||
|
}
|
||||||
|
|
||||||
uint8_t *pPixels = img->pixels;
|
uint8_t *pPixels = img->pixels;
|
||||||
if (!pPixels)
|
if (!pPixels)
|
||||||
|
{
|
||||||
|
image.Release();
|
||||||
return E_POINTER;
|
return E_POINTER;
|
||||||
|
}
|
||||||
|
|
||||||
size_t rowPitch = img->rowPitch;
|
size_t rowPitch = img->rowPitch;
|
||||||
|
|
||||||
@ -1128,14 +1134,20 @@ HRESULT DirectX::LoadFromTGAFile(
|
|||||||
assert(image.GetImageCount() == 1);
|
assert(image.GetImageCount() == 1);
|
||||||
const Image* img = image.GetImage(0, 0, 0);
|
const Image* img = image.GetImage(0, 0, 0);
|
||||||
if (!img)
|
if (!img)
|
||||||
|
{
|
||||||
|
image.Release();
|
||||||
return E_POINTER;
|
return E_POINTER;
|
||||||
|
}
|
||||||
|
|
||||||
// Scan for non-zero alpha channel
|
// Scan for non-zero alpha channel
|
||||||
bool nonzeroa = false;
|
bool nonzeroa = false;
|
||||||
|
|
||||||
const uint8_t *pPixels = img->pixels;
|
const uint8_t *pPixels = img->pixels;
|
||||||
if (!pPixels)
|
if (!pPixels)
|
||||||
|
{
|
||||||
|
image.Release();
|
||||||
return E_POINTER;
|
return E_POINTER;
|
||||||
|
}
|
||||||
|
|
||||||
size_t rowPitch = img->rowPitch;
|
size_t rowPitch = img->rowPitch;
|
||||||
|
|
||||||
@ -1165,7 +1177,10 @@ HRESULT DirectX::LoadFromTGAFile(
|
|||||||
{
|
{
|
||||||
hr = SetAlphaChannelToOpaque(img);
|
hr = SetAlphaChannelToOpaque(img);
|
||||||
if (FAILED(hr))
|
if (FAILED(hr))
|
||||||
|
{
|
||||||
|
image.Release();
|
||||||
return hr;
|
return hr;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user