Added option for passing additional vertex/index buffer memory usage flags for loading models
Removed unused optional assimp flags
This commit is contained in:
parent
a1b21f6990
commit
00982b70bb
1 changed files with 9 additions and 10 deletions
|
|
@ -86,8 +86,9 @@ namespace vks
|
||||||
glm::vec3 center;
|
glm::vec3 center;
|
||||||
glm::vec3 scale;
|
glm::vec3 scale;
|
||||||
glm::vec2 uvscale;
|
glm::vec2 uvscale;
|
||||||
|
VkMemoryPropertyFlags memoryPropertyFlags = 0;
|
||||||
|
|
||||||
ModelCreateInfo() {};
|
ModelCreateInfo() : center(glm::vec3(0.0f)), scale(glm::vec3(1.0f)), uvscale(glm::vec2(1.0f)) {};
|
||||||
|
|
||||||
ModelCreateInfo(glm::vec3 scale, glm::vec2 uvscale, glm::vec3 center)
|
ModelCreateInfo(glm::vec3 scale, glm::vec2 uvscale, glm::vec3 center)
|
||||||
{
|
{
|
||||||
|
|
@ -151,9 +152,8 @@ namespace vks
|
||||||
* @param layout Vertex layout components (position, normals, tangents, etc.)
|
* @param layout Vertex layout components (position, normals, tangents, etc.)
|
||||||
* @param createInfo MeshCreateInfo structure for load time settings like scale, center, etc.
|
* @param createInfo MeshCreateInfo structure for load time settings like scale, center, etc.
|
||||||
* @param copyQueue Queue used for the memory staging copy commands (must support transfer)
|
* @param copyQueue Queue used for the memory staging copy commands (must support transfer)
|
||||||
* @param (Optional) flags ASSIMP model loading flags
|
|
||||||
*/
|
*/
|
||||||
bool loadFromFile(const std::string& filename, vks::VertexLayout layout, vks::ModelCreateInfo *createInfo, vks::VulkanDevice *device, VkQueue copyQueue, const int flags = defaultFlags)
|
bool loadFromFile(const std::string& filename, vks::VertexLayout layout, vks::ModelCreateInfo *createInfo, vks::VulkanDevice *device, VkQueue copyQueue)
|
||||||
{
|
{
|
||||||
this->device = device->logicalDevice;
|
this->device = device->logicalDevice;
|
||||||
|
|
||||||
|
|
@ -179,11 +179,11 @@ namespace vks
|
||||||
AAsset_read(asset, meshData, size);
|
AAsset_read(asset, meshData, size);
|
||||||
AAsset_close(asset);
|
AAsset_close(asset);
|
||||||
|
|
||||||
pScene = Importer.ReadFileFromMemory(meshData, size, flags);
|
pScene = Importer.ReadFileFromMemory(meshData, size, defaultFlags);
|
||||||
|
|
||||||
free(meshData);
|
free(meshData);
|
||||||
#else
|
#else
|
||||||
pScene = Importer.ReadFile(filename.c_str(), flags);
|
pScene = Importer.ReadFile(filename.c_str(), defaultFlags);
|
||||||
if (!pScene) {
|
if (!pScene) {
|
||||||
std::string error = Importer.GetErrorString();
|
std::string error = Importer.GetErrorString();
|
||||||
vks::tools::exitFatal(error + "\n\nThe file may be part of the additional asset pack.\n\nRun \"download_assets.py\" in the repository root to download the latest version.", -1);
|
vks::tools::exitFatal(error + "\n\nThe file may be part of the additional asset pack.\n\nRun \"download_assets.py\" in the repository root to download the latest version.", -1);
|
||||||
|
|
@ -334,14 +334,14 @@ namespace vks
|
||||||
// Create device local target buffers
|
// Create device local target buffers
|
||||||
// Vertex buffer
|
// Vertex buffer
|
||||||
VK_CHECK_RESULT(device->createBuffer(
|
VK_CHECK_RESULT(device->createBuffer(
|
||||||
VK_BUFFER_USAGE_VERTEX_BUFFER_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT,
|
VK_BUFFER_USAGE_VERTEX_BUFFER_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT | createInfo->memoryPropertyFlags,
|
||||||
VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT,
|
VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT,
|
||||||
&vertices,
|
&vertices,
|
||||||
vBufferSize));
|
vBufferSize));
|
||||||
|
|
||||||
// Index buffer
|
// Index buffer
|
||||||
VK_CHECK_RESULT(device->createBuffer(
|
VK_CHECK_RESULT(device->createBuffer(
|
||||||
VK_BUFFER_USAGE_INDEX_BUFFER_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT,
|
VK_BUFFER_USAGE_INDEX_BUFFER_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT | createInfo->memoryPropertyFlags,
|
||||||
VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT,
|
VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT,
|
||||||
&indices,
|
&indices,
|
||||||
iBufferSize));
|
iBufferSize));
|
||||||
|
|
@ -385,12 +385,11 @@ namespace vks
|
||||||
* @param layout Vertex layout components (position, normals, tangents, etc.)
|
* @param layout Vertex layout components (position, normals, tangents, etc.)
|
||||||
* @param scale Load time scene scale
|
* @param scale Load time scene scale
|
||||||
* @param copyQueue Queue used for the memory staging copy commands (must support transfer)
|
* @param copyQueue Queue used for the memory staging copy commands (must support transfer)
|
||||||
* @param (Optional) flags ASSIMP model loading flags
|
|
||||||
*/
|
*/
|
||||||
bool loadFromFile(const std::string& filename, vks::VertexLayout layout, float scale, vks::VulkanDevice *device, VkQueue copyQueue, const int flags = defaultFlags)
|
bool loadFromFile(const std::string& filename, vks::VertexLayout layout, float scale, vks::VulkanDevice *device, VkQueue copyQueue)
|
||||||
{
|
{
|
||||||
vks::ModelCreateInfo modelCreateInfo(scale, 1.0f, 0.0f);
|
vks::ModelCreateInfo modelCreateInfo(scale, 1.0f, 0.0f);
|
||||||
return loadFromFile(filename, layout, &modelCreateInfo, device, copyQueue, flags);
|
return loadFromFile(filename, layout, &modelCreateInfo, device, copyQueue);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
Loading…
Add table
Add a link
Reference in a new issue