summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/Assets/MeshAsset.cpp
diff options
context:
space:
mode:
authoriwubcode <iwubcode@users.noreply.github.com>2024-02-12 18:42:01 -0600
committeriwubcode <iwubcode@users.noreply.github.com>2024-02-12 21:45:32 -0600
commit2ab877586def383692c893e3948ccc6865966f3c (patch)
tree6907df9e5c607cf174dc0707ebe749a689a2b40e /Source/Core/VideoCommon/Assets/MeshAsset.cpp
parentaa66842172da29b2936fdb0942d32947ae1b3ca1 (diff)
VideoCommon: make mesh asset data loadable by asset loader
Diffstat (limited to 'Source/Core/VideoCommon/Assets/MeshAsset.cpp')
-rw-r--r--Source/Core/VideoCommon/Assets/MeshAsset.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/Source/Core/VideoCommon/Assets/MeshAsset.cpp b/Source/Core/VideoCommon/Assets/MeshAsset.cpp
index b8dd029375..05a4ba0961 100644
--- a/Source/Core/VideoCommon/Assets/MeshAsset.cpp
+++ b/Source/Core/VideoCommon/Assets/MeshAsset.cpp
@@ -12,6 +12,7 @@
#include "Common/IOFile.h"
#include "Common/Logging/Log.h"
#include "Common/StringUtil.h"
+#include "VideoCommon/Assets/CustomAssetLibrary.h"
namespace VideoCommon
{
@@ -645,4 +646,18 @@ bool MeshData::FromGLTF(std::string_view gltf_file, MeshData* data)
ERROR_LOG_FMT(VIDEO, "GLTF '{}' has invalid extension", gltf_file);
return false;
}
+
+CustomAssetLibrary::LoadInfo MeshAsset::LoadImpl(const CustomAssetLibrary::AssetID& asset_id)
+{
+ auto potential_data = std::make_shared<MeshData>();
+ const auto loaded_info = m_owning_library->LoadMesh(asset_id, potential_data.get());
+ if (loaded_info.m_bytes_loaded == 0)
+ return {};
+ {
+ std::lock_guard lk(m_data_lock);
+ m_loaded = true;
+ m_data = std::move(potential_data);
+ }
+ return loaded_info;
+}
} // namespace VideoCommon