ktx loading fixes

This commit is contained in:
Sascha Willems 2019-12-08 08:58:35 +01:00
parent 3537d2cca2
commit af3ae38bd2
2 changed files with 5 additions and 10 deletions

View file

@ -406,11 +406,11 @@ public:
assert(asset); assert(asset);
size_t size = AAsset_getLength(asset); size_t size = AAsset_getLength(asset);
assert(size > 0); assert(size > 0);
void *textureData = malloc(size); ktx_uint8_t* textureData = new ktx_uint8_t[size];
AAsset_read(asset, textureData, size); AAsset_read(asset, textureData, size);
AAsset_close(asset); AAsset_close(asset);
result = ktxTexture_CreateFromMemory(textureData, size, KTX_TEXTURE_CREATE_LOAD_IMAGE_DATA_BIT, target); result = ktxTexture_CreateFromMemory(textureData, size, KTX_TEXTURE_CREATE_LOAD_IMAGE_DATA_BIT, &ktxTexture);
free(textureData); delete[] textureData;
#else #else
result = ktxTexture_CreateFromNamedFile(filename.c_str(), KTX_TEXTURE_CREATE_LOAD_IMAGE_DATA_BIT, &ktxTexture); result = ktxTexture_CreateFromNamedFile(filename.c_str(), KTX_TEXTURE_CREATE_LOAD_IMAGE_DATA_BIT, &ktxTexture);

View file

@ -115,7 +115,7 @@ public:
} }
} }
void loadTexture(std::string fileName, VkFormat format, bool forceLinearTiling) void loadTexture(std::string filename, VkFormat format, bool forceLinearTiling)
{ {
ktxResult result; ktxResult result;
ktxTexture* ktxTexture; ktxTexture* ktxTexture;
@ -143,11 +143,6 @@ public:
#endif #endif
assert(result == KTX_SUCCESS); assert(result == KTX_SUCCESS);
VkFormatProperties formatProperties;
VkFormatProperties formatProperties;
texture.width = ktxTexture->baseWidth; texture.width = ktxTexture->baseWidth;
texture.height = ktxTexture->baseHeight; texture.height = ktxTexture->baseHeight;
ktx_uint8_t *ktxTextureData = ktxTexture_GetData(ktxTexture); ktx_uint8_t *ktxTextureData = ktxTexture_GetData(ktxTexture);
@ -159,8 +154,8 @@ public:
texture.mipLevels = floor(log2(std::max(texture.width, texture.height))) + 1; texture.mipLevels = floor(log2(std::max(texture.width, texture.height))) + 1;
// Get device properites for the requested texture format // Get device properites for the requested texture format
VkFormatProperties formatProperties;
vkGetPhysicalDeviceFormatProperties(physicalDevice, format, &formatProperties); vkGetPhysicalDeviceFormatProperties(physicalDevice, format, &formatProperties);
// Mip-chain generation requires support for blit source and destination // Mip-chain generation requires support for blit source and destination
assert(formatProperties.optimalTilingFeatures & VK_FORMAT_FEATURE_BLIT_SRC_BIT); assert(formatProperties.optimalTilingFeatures & VK_FORMAT_FEATURE_BLIT_SRC_BIT);
assert(formatProperties.optimalTilingFeatures & VK_FORMAT_FEATURE_BLIT_DST_BIT); assert(formatProperties.optimalTilingFeatures & VK_FORMAT_FEATURE_BLIT_DST_BIT);