mirror of
https://github.com/overte-org/overte.git
synced 2025-04-14 22:47:54 +02:00
Replace the alignment test by a nice function
This commit is contained in:
parent
d734358290
commit
f35b0297fa
3 changed files with 7 additions and 3 deletions
|
@ -22,6 +22,9 @@ uint32_t Header::evalPadding(size_t byteSize) {
|
||||||
return (uint32_t) (3 - (byteSize + 3) % PACKING_SIZE);// padding ? PACKING_SIZE - padding : 0);
|
return (uint32_t) (3 - (byteSize + 3) % PACKING_SIZE);// padding ? PACKING_SIZE - padding : 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool Header::checkAlignment(size_t byteSize) {
|
||||||
|
return ((byteSize & 0x3) == 0);
|
||||||
|
}
|
||||||
|
|
||||||
const Header::Identifier ktx::Header::IDENTIFIER {{
|
const Header::Identifier ktx::Header::IDENTIFIER {{
|
||||||
0xAB, 0x4B, 0x54, 0x58, 0x20, 0x31, 0x31, 0xBB, 0x0D, 0x0A, 0x1A, 0x0A
|
0xAB, 0x4B, 0x54, 0x58, 0x20, 0x31, 0x31, 0xBB, 0x0D, 0x0A, 0x1A, 0x0A
|
||||||
|
@ -114,7 +117,7 @@ size_t Header::evalFaceSize(uint32_t level) const {
|
||||||
}
|
}
|
||||||
size_t Header::evalImageSize(uint32_t level) const {
|
size_t Header::evalImageSize(uint32_t level) const {
|
||||||
auto faceSize = evalFaceSize(level);
|
auto faceSize = evalFaceSize(level);
|
||||||
if ((faceSize < 4) || ((faceSize & 0x3) != 0)) {
|
if (!checkAlignment(faceSize)) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
if (numberOfFaces == NUM_CUBEMAPFACES && numberOfArrayElements == 0) {
|
if (numberOfFaces == NUM_CUBEMAPFACES && numberOfArrayElements == 0) {
|
||||||
|
@ -142,7 +145,7 @@ ImageDescriptors Header::generateImageDescriptors() const {
|
||||||
size_t imageOffset = 0;
|
size_t imageOffset = 0;
|
||||||
for (uint32_t level = 0; level < numberOfMipmapLevels; ++level) {
|
for (uint32_t level = 0; level < numberOfMipmapLevels; ++level) {
|
||||||
auto imageSize = static_cast<uint32_t>(evalImageSize(level));
|
auto imageSize = static_cast<uint32_t>(evalImageSize(level));
|
||||||
if ((imageSize < 4) || ((imageSize & 0x3) != 0)) {
|
if (!checkAlignment(imageSize)) {
|
||||||
return ImageDescriptors();
|
return ImageDescriptors();
|
||||||
}
|
}
|
||||||
if (imageSize == 0) {
|
if (imageSize == 0) {
|
||||||
|
|
|
@ -309,6 +309,7 @@ namespace ktx {
|
||||||
static const uint32_t REVERSE_ENDIAN_TEST = 0x01020304;
|
static const uint32_t REVERSE_ENDIAN_TEST = 0x01020304;
|
||||||
|
|
||||||
static uint32_t evalPadding(size_t byteSize);
|
static uint32_t evalPadding(size_t byteSize);
|
||||||
|
static bool checkAlignment(size_t byteSize);
|
||||||
|
|
||||||
Header();
|
Header();
|
||||||
|
|
||||||
|
|
|
@ -151,7 +151,7 @@ namespace ktx {
|
||||||
auto expectedImageSize = header.evalImageSize(images.size());
|
auto expectedImageSize = header.evalImageSize(images.size());
|
||||||
if (imageSize != expectedImageSize) {
|
if (imageSize != expectedImageSize) {
|
||||||
break;
|
break;
|
||||||
} else if ((imageSize < 4) || (imageSize & 0x3)) {
|
} else if (!Header::checkAlignment(imageSize)) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue