129 {
130 TextureManager& manager = instance();
131 std::lock_guard<std::mutex> lock(manager.m_textureMutex);
132
133 auto it = manager.m_loadingTextures.begin();
134 while (it != manager.m_loadingTextures.end())
135 {
136 switch (it->meta.State)
137 {
139 if (manager.m_Textures.count(it->meta.Path))
140 {
141 EE_CORE_INFO("Loaded texture : {}, {}x{}", it->meta.Path, it->meta.Width, it->meta.Height);
142 manager.m_Textures[it->meta.Path]->SetData(it->data, it->meta);
143 stbi_image_free(it->data);
144 it->data = nullptr;
145 }
146 it = manager.m_loadingTextures.erase(it);
147 break;
149 if (manager.m_Textures.count(it->meta.Path))
150 {
151 EE_CORE_ERROR("Failed to load texture : {}", it->meta.Path);
152 manager.m_Textures[it->meta.Path]->SetData(it->data, it->meta);
153 if (it->data)
154 {
155 stbi_image_free(it->data);
156 }
157 it->data = nullptr;
158 }
159 it = manager.m_loadingTextures.erase(it);
160 break;
161 default:
162 ++it;
163 break;
164 }
165 }
166 }