Fixed Incorrect Tuple Usage in unpackData

Fixed "IndexError: tuple index out of range"
`value = tuple(float(value[i]) / divisor for i in value)`
Was effectively attempting to access the value tuple using an element as an index.

`value = tuple(float(i) / divisor for i in value)`
Uses the elements from the tuple and modifies them.

Ex: (0,0,0,255) becomes: (0.0, 0.0, 0.0, 255.0)
Instead of throwing an error.
This commit is contained in:
Waffle
2019-07-15 16:36:02 -04:00
committed by Baldur Karlsson
parent 68bbc356a4
commit 9aaca1bb5f
@@ -57,11 +57,11 @@ def unpackData(fmt, data):
# If the format needs post-processing such as normalisation, do that now
if fmt.compType == rd.CompType.UNorm:
divisor = float((1 << fmt.compByteWidth) - 1)
value = tuple(float(value[i]) / divisor for i in value)
value = tuple(float(i) / divisor for i in value)
elif fmt.compType == rd.CompType.SNorm:
maxNeg = -(1 << (fmt.compByteWidth - 1))
divisor = float(-(maxNeg-1))
value = tuple((float(value[i]) if (value[i] == maxNeg) else (float(value[i]) / divisor)) for i in value)
value = tuple((float(i) if (i == maxNeg) else (float(i) / divisor)) for i in value)
# If the format is BGRA, swap the two components
if fmt.BGRAOrder():