Updated to api changes for recent gli and glm versions

This commit is contained in:
saschawillems 2017-01-21 21:31:26 +01:00
parent ed8e8410b3
commit 90b8c82f75
8 changed files with 53 additions and 51 deletions

View file

@ -8,6 +8,9 @@
#pragma once #pragma once
#include <string>
#include <iostream>
#include <vulkan/vulkan.h> #include <vulkan/vulkan.h>
#include <gli/gli.hpp> #include <gli/gli.hpp>
@ -133,17 +136,17 @@ namespace vkTools
AAsset_read(asset, textureData, size); AAsset_read(asset, textureData, size);
AAsset_close(asset); AAsset_close(asset);
gli::texture2D tex2D(gli::load((const char*)textureData, size)); gli::texture2d tex2D(gli::load((const char*)textureData, size));
free(textureData); free(textureData);
#else #else
gli::texture2D tex2D(gli::load(filename.c_str())); gli::texture2d tex2D(gli::load(filename.c_str()));
#endif #endif
assert(!tex2D.empty()); assert(!tex2D.empty());
texture->device = vulkanDevice->logicalDevice; texture->device = vulkanDevice->logicalDevice;
texture->width = static_cast<uint32_t>(tex2D[0].dimensions().x); texture->width = static_cast<uint32_t>(tex2D[0].extent().x);
texture->height = static_cast<uint32_t>(tex2D[0].dimensions().y); texture->height = static_cast<uint32_t>(tex2D[0].extent().y);
texture->mipLevels = static_cast<uint32_t>(tex2D.levels()); texture->mipLevels = static_cast<uint32_t>(tex2D.levels());
// Get device properites for the requested texture format // Get device properites for the requested texture format
@ -205,8 +208,8 @@ namespace vkTools
bufferCopyRegion.imageSubresource.mipLevel = i; bufferCopyRegion.imageSubresource.mipLevel = i;
bufferCopyRegion.imageSubresource.baseArrayLayer = 0; bufferCopyRegion.imageSubresource.baseArrayLayer = 0;
bufferCopyRegion.imageSubresource.layerCount = 1; bufferCopyRegion.imageSubresource.layerCount = 1;
bufferCopyRegion.imageExtent.width = static_cast<uint32_t>(tex2D[i].dimensions().x); bufferCopyRegion.imageExtent.width = static_cast<uint32_t>(tex2D[i].extent().x);
bufferCopyRegion.imageExtent.height = static_cast<uint32_t>(tex2D[i].dimensions().y); bufferCopyRegion.imageExtent.height = static_cast<uint32_t>(tex2D[i].extent().y);
bufferCopyRegion.imageExtent.depth = 1; bufferCopyRegion.imageExtent.depth = 1;
bufferCopyRegion.bufferOffset = offset; bufferCopyRegion.bufferOffset = offset;
@ -462,17 +465,17 @@ namespace vkTools
AAsset_read(asset, textureData, size); AAsset_read(asset, textureData, size);
AAsset_close(asset); AAsset_close(asset);
gli::textureCube texCube(gli::load((const char*)textureData, size)); gli::texture_cube texCube(gli::load((const char*)textureData, size));
free(textureData); free(textureData);
#else #else
gli::textureCube texCube(gli::load(filename)); gli::texture_cube texCube(gli::load(filename));
#endif #endif
assert(!texCube.empty()); assert(!texCube.empty());
texture->device = vulkanDevice->logicalDevice; texture->device = vulkanDevice->logicalDevice;
texture->width = static_cast<uint32_t>(texCube.dimensions().x); texture->width = static_cast<uint32_t>(texCube.extent().x);
texture->height = static_cast<uint32_t>(texCube.dimensions().y); texture->height = static_cast<uint32_t>(texCube.extent().y);
texture->mipLevels = static_cast<uint32_t>(texCube.levels()); texture->mipLevels = static_cast<uint32_t>(texCube.levels());
VkMemoryAllocateInfo memAllocInfo = vkTools::initializers::memoryAllocateInfo(); VkMemoryAllocateInfo memAllocInfo = vkTools::initializers::memoryAllocateInfo();
@ -519,8 +522,8 @@ namespace vkTools
bufferCopyRegion.imageSubresource.mipLevel = level; bufferCopyRegion.imageSubresource.mipLevel = level;
bufferCopyRegion.imageSubresource.baseArrayLayer = face; bufferCopyRegion.imageSubresource.baseArrayLayer = face;
bufferCopyRegion.imageSubresource.layerCount = 1; bufferCopyRegion.imageSubresource.layerCount = 1;
bufferCopyRegion.imageExtent.width = static_cast<uint32_t>(texCube[face][level].dimensions().x); bufferCopyRegion.imageExtent.width = static_cast<uint32_t>(texCube[face][level].extent().x);
bufferCopyRegion.imageExtent.height = static_cast<uint32_t>(texCube[face][level].dimensions().y); bufferCopyRegion.imageExtent.height = static_cast<uint32_t>(texCube[face][level].extent().y);
bufferCopyRegion.imageExtent.depth = 1; bufferCopyRegion.imageExtent.depth = 1;
bufferCopyRegion.bufferOffset = offset; bufferCopyRegion.bufferOffset = offset;
@ -683,18 +686,18 @@ namespace vkTools
AAsset_read(asset, textureData, size); AAsset_read(asset, textureData, size);
AAsset_close(asset); AAsset_close(asset);
gli::texture2DArray tex2DArray(gli::load((const char*)textureData, size)); gli::texture2d_array tex2DArray(gli::load((const char*)textureData, size));
free(textureData); free(textureData);
#else #else
gli::texture2DArray tex2DArray(gli::load(filename)); gli::texture2d_array tex2DArray(gli::load(filename));
#endif #endif
assert(!tex2DArray.empty()); assert(!tex2DArray.empty());
texture->device = vulkanDevice->logicalDevice; texture->device = vulkanDevice->logicalDevice;
texture->width = static_cast<uint32_t>(tex2DArray.dimensions().x); texture->width = static_cast<uint32_t>(tex2DArray.extent().x);
texture->height = static_cast<uint32_t>(tex2DArray.dimensions().y); texture->height = static_cast<uint32_t>(tex2DArray.extent().y);
texture->layerCount = static_cast<uint32_t>(tex2DArray.layers()); texture->layerCount = static_cast<uint32_t>(tex2DArray.layers());
texture->mipLevels = static_cast<uint32_t>(tex2DArray.levels()); texture->mipLevels = static_cast<uint32_t>(tex2DArray.levels());
@ -742,8 +745,8 @@ namespace vkTools
bufferCopyRegion.imageSubresource.mipLevel = level; bufferCopyRegion.imageSubresource.mipLevel = level;
bufferCopyRegion.imageSubresource.baseArrayLayer = layer; bufferCopyRegion.imageSubresource.baseArrayLayer = layer;
bufferCopyRegion.imageSubresource.layerCount = 1; bufferCopyRegion.imageSubresource.layerCount = 1;
bufferCopyRegion.imageExtent.width = static_cast<uint32_t>(tex2DArray[layer][level].dimensions().x); bufferCopyRegion.imageExtent.width = static_cast<uint32_t>(tex2DArray[layer][level].extent().x);
bufferCopyRegion.imageExtent.height = static_cast<uint32_t>(tex2DArray[layer][level].dimensions().y); bufferCopyRegion.imageExtent.height = static_cast<uint32_t>(tex2DArray[layer][level].extent().y);
bufferCopyRegion.imageExtent.depth = 1; bufferCopyRegion.imageExtent.depth = 1;
bufferCopyRegion.bufferOffset = offset; bufferCopyRegion.bufferOffset = offset;

View file

@ -83,12 +83,12 @@ namespace vkTools
void *textureData = malloc(size); void *textureData = malloc(size);
AAsset_read(asset, textureData, size); AAsset_read(asset, textureData, size);
AAsset_close(asset); AAsset_close(asset);
gli::texture2D heightTex(gli::load((const char*)textureData, size)); gli::texture2d heightTex(gli::load((const char*)textureData, size));
free(textureData); free(textureData);
#else #else
gli::texture2D heightTex(gli::load(filename)); gli::texture2d heightTex(gli::load(filename));
#endif #endif
dim = static_cast<uint32_t>(heightTex.dimensions().x); dim = static_cast<uint32_t>(heightTex.extent().x);
heightdata = new uint16_t[dim * dim]; heightdata = new uint16_t[dim * dim];
memcpy(heightdata, heightTex.data(), heightTex.size()); memcpy(heightdata, heightTex.data(), heightTex.size());
this->scale = dim / patchsize; this->scale = dim / patchsize;

View file

@ -17,7 +17,6 @@
#define GLM_FORCE_DEPTH_ZERO_TO_ONE #define GLM_FORCE_DEPTH_ZERO_TO_ONE
#include <glm/glm.hpp> #include <glm/glm.hpp>
#include <glm/gtc/matrix_transform.hpp> #include <glm/gtc/matrix_transform.hpp>
#include <glm/gtx/rotate_vector.hpp>
#include <vulkan/vulkan.h> #include <vulkan/vulkan.h>
#include "vulkanexamplebase.h" #include "vulkanexamplebase.h"

View file

@ -355,12 +355,12 @@ public:
void *textureData = malloc(size); void *textureData = malloc(size);
AAsset_read(asset, textureData, size); AAsset_read(asset, textureData, size);
AAsset_close(asset); AAsset_close(asset);
gli::texture2D heightTex(gli::load((const char*)textureData, size)); gli::texture2d heightTex(gli::load((const char*)textureData, size));
free(textureData); free(textureData);
#else #else
gli::texture2D heightTex(gli::load(filename)); gli::texture2d heightTex(gli::load(filename));
#endif #endif
dim = static_cast<uint32_t>(heightTex.dimensions().x); dim = static_cast<uint32_t>(heightTex.extent().x);
heightdata = new uint16_t[dim * dim]; heightdata = new uint16_t[dim * dim];
memcpy(heightdata, heightTex.data(), heightTex.size()); memcpy(heightdata, heightTex.data(), heightTex.size());
this->scale = dim / patchsize; this->scale = dim / patchsize;

View file

@ -183,17 +183,17 @@ public:
AAsset_read(asset, textureData, size); AAsset_read(asset, textureData, size);
AAsset_close(asset); AAsset_close(asset);
gli::texture2D tex2D(gli::load((const char*)textureData, size)); gli::texture2d tex2D(gli::load((const char*)textureData, size));
#else #else
gli::texture2D tex2D(gli::load(fileName)); gli::texture2d tex2D(gli::load(fileName));
#endif #endif
assert(!tex2D.empty()); assert(!tex2D.empty());
VkFormatProperties formatProperties; VkFormatProperties formatProperties;
texture.width = static_cast<uint32_t>(tex2D[0].dimensions().x); texture.width = static_cast<uint32_t>(tex2D[0].extent().x);
texture.height = static_cast<uint32_t>(tex2D[0].dimensions().y); texture.height = static_cast<uint32_t>(tex2D[0].extent().y);
texture.mipLevels = static_cast<uint32_t>(tex2D.levels()); texture.mipLevels = static_cast<uint32_t>(tex2D.levels());
// Get device properites for the requested texture format // Get device properites for the requested texture format
@ -257,8 +257,8 @@ public:
bufferCopyRegion.imageSubresource.mipLevel = i; bufferCopyRegion.imageSubresource.mipLevel = i;
bufferCopyRegion.imageSubresource.baseArrayLayer = 0; bufferCopyRegion.imageSubresource.baseArrayLayer = 0;
bufferCopyRegion.imageSubresource.layerCount = 1; bufferCopyRegion.imageSubresource.layerCount = 1;
bufferCopyRegion.imageExtent.width = static_cast<uint32_t>(tex2D[i].dimensions().x); bufferCopyRegion.imageExtent.width = static_cast<uint32_t>(tex2D[i].extent().x);
bufferCopyRegion.imageExtent.height = static_cast<uint32_t>(tex2D[i].dimensions().y); bufferCopyRegion.imageExtent.height = static_cast<uint32_t>(tex2D[i].extent().y);
bufferCopyRegion.imageExtent.depth = 1; bufferCopyRegion.imageExtent.depth = 1;
bufferCopyRegion.bufferOffset = offset; bufferCopyRegion.bufferOffset = offset;

View file

@ -122,15 +122,15 @@ public:
AAsset_read(asset, textureData, size); AAsset_read(asset, textureData, size);
AAsset_close(asset); AAsset_close(asset);
gli::texture2DArray tex2DArray(gli::load((const char*)textureData, size)); gli::texture2d_array tex2DArray(gli::load((const char*)textureData, size));
#else #else
gli::texture2DArray tex2DArray(gli::load(filename)); gli::texture2d_array tex2DArray(gli::load(filename));
#endif #endif
assert(!tex2DArray.empty()); assert(!tex2DArray.empty());
textureArray.width = tex2DArray.dimensions().x; textureArray.width = tex2DArray.extent().x;
textureArray.height = tex2DArray.dimensions().y; textureArray.height = tex2DArray.extent().y;
layerCount = tex2DArray.layers(); layerCount = tex2DArray.layers();
VkMemoryAllocateInfo memAllocInfo = vkTools::initializers::memoryAllocateInfo(); VkMemoryAllocateInfo memAllocInfo = vkTools::initializers::memoryAllocateInfo();
@ -168,11 +168,11 @@ public:
std::vector<VkBufferImageCopy> bufferCopyRegions; std::vector<VkBufferImageCopy> bufferCopyRegions;
uint32_t offset = 0; uint32_t offset = 0;
// Check if all array layers have the same dimesions // Check if all array layers have the same dimensions
bool sameDims = true; bool sameDims = true;
for (uint32_t layer = 0; layer < layerCount; layer++) for (uint32_t layer = 0; layer < layerCount; layer++)
{ {
if (tex2DArray[layer].dimensions().x != textureArray.width || tex2DArray[layer].dimensions().y != textureArray.height) if (tex2DArray[layer].extent().x != textureArray.width || tex2DArray[layer].extent().y != textureArray.height)
{ {
sameDims = false; sameDims = false;
break; break;
@ -187,8 +187,8 @@ public:
bufferCopyRegion.imageSubresource.mipLevel = 0; bufferCopyRegion.imageSubresource.mipLevel = 0;
bufferCopyRegion.imageSubresource.baseArrayLayer = 0; bufferCopyRegion.imageSubresource.baseArrayLayer = 0;
bufferCopyRegion.imageSubresource.layerCount = layerCount; bufferCopyRegion.imageSubresource.layerCount = layerCount;
bufferCopyRegion.imageExtent.width = tex2DArray[0].dimensions().x; bufferCopyRegion.imageExtent.width = tex2DArray[0].extent().x;
bufferCopyRegion.imageExtent.height = tex2DArray[0].dimensions().y; bufferCopyRegion.imageExtent.height = tex2DArray[0].extent().y;
bufferCopyRegion.imageExtent.depth = 1; bufferCopyRegion.imageExtent.depth = 1;
bufferCopyRegion.bufferOffset = offset; bufferCopyRegion.bufferOffset = offset;
@ -204,8 +204,8 @@ public:
bufferCopyRegion.imageSubresource.mipLevel = 0; bufferCopyRegion.imageSubresource.mipLevel = 0;
bufferCopyRegion.imageSubresource.baseArrayLayer = layer; bufferCopyRegion.imageSubresource.baseArrayLayer = layer;
bufferCopyRegion.imageSubresource.layerCount = 1; bufferCopyRegion.imageSubresource.layerCount = 1;
bufferCopyRegion.imageExtent.width = tex2DArray[layer].dimensions().x; bufferCopyRegion.imageExtent.width = tex2DArray[layer].extent().x;
bufferCopyRegion.imageExtent.height = tex2DArray[layer].dimensions().y; bufferCopyRegion.imageExtent.height = tex2DArray[layer].extent().y;
bufferCopyRegion.imageExtent.depth = 1; bufferCopyRegion.imageExtent.depth = 1;
bufferCopyRegion.bufferOffset = offset; bufferCopyRegion.bufferOffset = offset;

View file

@ -127,15 +127,15 @@ public:
AAsset_read(asset, textureData, size); AAsset_read(asset, textureData, size);
AAsset_close(asset); AAsset_close(asset);
gli::textureCube texCube(gli::load((const char*)textureData, size)); gli::texture_cube texCube(gli::load((const char*)textureData, size));
#else #else
gli::textureCube texCube(gli::load(filename)); gli::texture_cube texCube(gli::load(filename));
#endif #endif
assert(!texCube.empty()); assert(!texCube.empty());
cubeMap.width = texCube.dimensions().x; cubeMap.width = texCube.extent().x;
cubeMap.height = texCube.dimensions().y; cubeMap.height = texCube.extent().y;
cubeMap.mipLevels = texCube.levels(); cubeMap.mipLevels = texCube.levels();
VkMemoryAllocateInfo memAllocInfo = vkTools::initializers::memoryAllocateInfo(); VkMemoryAllocateInfo memAllocInfo = vkTools::initializers::memoryAllocateInfo();
@ -209,8 +209,8 @@ public:
bufferCopyRegion.imageSubresource.mipLevel = level; bufferCopyRegion.imageSubresource.mipLevel = level;
bufferCopyRegion.imageSubresource.baseArrayLayer = face; bufferCopyRegion.imageSubresource.baseArrayLayer = face;
bufferCopyRegion.imageSubresource.layerCount = 1; bufferCopyRegion.imageSubresource.layerCount = 1;
bufferCopyRegion.imageExtent.width = texCube[face][level].dimensions().x; bufferCopyRegion.imageExtent.width = texCube[face][level].extent().x;
bufferCopyRegion.imageExtent.height = texCube[face][level].dimensions().y; bufferCopyRegion.imageExtent.height = texCube[face][level].extent().y;
bufferCopyRegion.imageExtent.depth = 1; bufferCopyRegion.imageExtent.depth = 1;
bufferCopyRegion.bufferOffset = offset; bufferCopyRegion.bufferOffset = offset;

View file

@ -121,17 +121,17 @@ public:
AAsset_read(asset, textureData, size); AAsset_read(asset, textureData, size);
AAsset_close(asset); AAsset_close(asset);
gli::texture2D tex2D(gli::load((const char*)textureData, size)); gli::texture2d tex2D(gli::load((const char*)textureData, size));
#else #else
gli::texture2D tex2D(gli::load(fileName)); gli::texture2d tex2D(gli::load(fileName));
#endif #endif
assert(!tex2D.empty()); assert(!tex2D.empty());
VkFormatProperties formatProperties; VkFormatProperties formatProperties;
texture.width = static_cast<uint32_t>(tex2D[0].dimensions().x); texture.width = static_cast<uint32_t>(tex2D[0].extent().x);
texture.height = static_cast<uint32_t>(tex2D[0].dimensions().y); texture.height = static_cast<uint32_t>(tex2D[0].extent().y);
// calculate num of mip maps // calculate num of mip maps
// numLevels = 1 + floor(log2(max(w, h, d))) // numLevels = 1 + floor(log2(max(w, h, d)))