Updated to api changes for recent gli and glm versions
This commit is contained in:
parent
ed8e8410b3
commit
90b8c82f75
8 changed files with 53 additions and 51 deletions
|
|
@ -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;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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"
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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)))
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue