diff --git a/Nuake/src/Rendering/Mesh/Mesh.cpp b/Nuake/src/Rendering/Mesh/Mesh.cpp index d69cd0f6..944190d2 100644 --- a/Nuake/src/Rendering/Mesh/Mesh.cpp +++ b/Nuake/src/Rendering/Mesh/Mesh.cpp @@ -10,6 +10,8 @@ #include "src/Rendering/Buffers/VertexArray.h" #include "src/Rendering/Buffers/VertexBufferLayout.h" +#include + namespace Nuake { Mesh::Mesh() {} @@ -163,24 +165,26 @@ namespace Nuake } std::vector vertices; - for (auto& v : j["Vertices"]) - { - Vertex vertex; - - try { - DESERIALIZE_VEC2(v["UV"], vertex.uv) + + std::async(std::launch::async, [&]() + { + for (auto& v : j["Vertices"]) + { + Vertex vertex; + try { + DESERIALIZE_VEC2(v["UV"], vertex.uv) + } + catch (std::exception& e) { + vertex.uv = { 0.0, 0.0 }; + } + DESERIALIZE_VEC3(v["Position"], vertex.position) + DESERIALIZE_VEC3(v["Normal"], vertex.normal) + DESERIALIZE_VEC3(v["Tangent"], vertex.tangent) + DESERIALIZE_VEC3(v["Bitangent"], vertex.bitangent) + vertices.push_back(vertex); + } } - catch(std::exception& e) { - vertex.uv = { 0.0, 0.0 }; - } - DESERIALIZE_VEC3(v["Position"], vertex.position) - DESERIALIZE_VEC3(v["Normal"], vertex.normal) - - DESERIALIZE_VEC3(v["Tangent"], vertex.tangent) - DESERIALIZE_VEC3(v["Bitangent"], vertex.bitangent) - - vertices.push_back(vertex); - } + ); m_Vertices = vertices; diff --git a/Nuake/src/Scene/Scene.cpp b/Nuake/src/Scene/Scene.cpp index 72a423fe..60596d92 100644 --- a/Nuake/src/Scene/Scene.cpp +++ b/Nuake/src/Scene/Scene.cpp @@ -26,6 +26,7 @@ #include "src/Scene/Components/InterfaceComponent.h" #include +#include #include #include #include "src/Core/OS.h" @@ -379,7 +380,11 @@ namespace Nuake { std::vector entities = std::vector(); for (Entity e : GetAllEntities()) - entities.push_back(e.Serialize()); + { + std::async(std::launch::async, [&]() { + entities.push_back(e.Serialize()); + }); + } SERIALIZE_VAL_LBL("Entities", entities); SERIALIZE_OBJECT(m_EditorCamera);