diff --git a/engine/asset/include/asset.hpp b/engine/asset/include/asset.hpp index 896e872..9aa8e25 100644 --- a/engine/asset/include/asset.hpp +++ b/engine/asset/include/asset.hpp @@ -126,11 +126,11 @@ using AssetManager = AssetPool; inline std::unique_ptr assetm; -std::unique_ptr load_mesh(prism::path path); -std::unique_ptr load_material(prism::path path); -std::unique_ptr load_texture(prism::path path); +std::unique_ptr load_mesh(const prism::path& path); +std::unique_ptr load_material(const prism::path& path); +std::unique_ptr load_texture(const prism::path& path); -void save_material(Material* material, prism::path path); +void save_material(Material* material, const prism::path& path); template std::unique_ptr load_asset(const prism::path& path) { diff --git a/engine/asset/src/asset.cpp b/engine/asset/src/asset.cpp index f68e094..dc36542 100644 --- a/engine/asset/src/asset.cpp +++ b/engine/asset/src/asset.cpp @@ -15,7 +15,7 @@ #include "physics.hpp" #include "imgui_backend.hpp" -std::unique_ptr load_mesh(const prism::path path) { +std::unique_ptr load_mesh(const prism::path& path) { Expects(!path.empty()); auto file = prism::open_file(path, true); @@ -91,7 +91,7 @@ std::unique_ptr load_mesh(const prism::path path) { file->read(&mesh->global_inverse_transformation); std::map boneMapping; - std::map parentQueue; + std::map parentQueue; for (int v = 0; v < bone_len; v++) { std::string bone, parent; @@ -189,7 +189,7 @@ std::unique_ptr load_mesh(const prism::path path) { return mesh; } -std::unique_ptr load_texture(const prism::path path) { +std::unique_ptr load_texture(const prism::path& path) { Expects(!path.empty()); auto file = prism::open_file(path, true); @@ -233,12 +233,11 @@ std::unique_ptr load_texture(const prism::path path) { engine->get_gfx()->copy_texture(texture->handle, data, width * height * 4); if(createInfo.mip_count > 1) { - GFXCommandBuffer* cmd_buf = engine->get_gfx()->acquire_command_buffer(); - + GFXCommandBuffer* cmd_buf = engine->get_gfx()->acquire_command_buffer(false); cmd_buf->generate_mipmaps(texture->handle, createInfo.mip_count); - engine->get_gfx()->submit(cmd_buf); + engine->get_gfx()->submit(cmd_buf, nullptr); } stbi_image_free(data); @@ -246,7 +245,7 @@ std::unique_ptr load_texture(const prism::path path) { return texture; } -std::unique_ptr load_material(const prism::path path) { +std::unique_ptr load_material(const prism::path& path) { Expects(!path.empty()); auto file = prism::open_file(path); @@ -287,7 +286,7 @@ std::unique_ptr load_material(const prism::path path) { return mat; } -void save_material(Material* material, const prism::path path) { +void save_material(Material* material, const prism::path& path) { Expects(material != nullptr); Expects(!path.empty());