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 scale;
|
||||
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)
|
||||
{
|
||||
|
|
@ -151,9 +152,8 @@ namespace vks
|
|||
* @param layout Vertex layout components (position, normals, tangents, 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 (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;
|
||||
|
||||
|
|
@ -179,11 +179,11 @@ namespace vks
|
|||
AAsset_read(asset, meshData, size);
|
||||
AAsset_close(asset);
|
||||
|
||||
pScene = Importer.ReadFileFromMemory(meshData, size, flags);
|
||||
pScene = Importer.ReadFileFromMemory(meshData, size, defaultFlags);
|
||||
|
||||
free(meshData);
|
||||
#else
|
||||
pScene = Importer.ReadFile(filename.c_str(), flags);
|
||||
pScene = Importer.ReadFile(filename.c_str(), defaultFlags);
|
||||
if (!pScene) {
|
||||
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);
|
||||
|
|
@ -334,14 +334,14 @@ namespace vks
|
|||
// Create device local target buffers
|
||||
// Vertex buffer
|
||||
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,
|
||||
&vertices,
|
||||
vBufferSize));
|
||||
|
||||
// Index buffer
|
||||
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,
|
||||
&indices,
|
||||
iBufferSize));
|
||||
|
|
@ -385,12 +385,11 @@ namespace vks
|
|||
* @param layout Vertex layout components (position, normals, tangents, etc.)
|
||||
* @param scale Load time scene scale
|
||||
* @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);
|
||||
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