summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/Assets/CustomAsset.cpp
diff options
context:
space:
mode:
authoriwubcode <iwubcode@users.noreply.github.com>2023-06-01 19:57:57 -0500
committeriwubcode <iwubcode@users.noreply.github.com>2023-06-01 19:57:57 -0500
commitb2c5a5485aaca5da9b22527ca79b113082ccaac2 (patch)
treee32250c57674621da1266ecdd08b1c0dc6be4561 /Source/Core/VideoCommon/Assets/CustomAsset.cpp
parent6302cea22cbae3d02d44fbb66d39f406a460bef3 (diff)
VideoCommon: add custom asset implementation and asset library that can load an asset
Diffstat (limited to 'Source/Core/VideoCommon/Assets/CustomAsset.cpp')
-rw-r--r--Source/Core/VideoCommon/Assets/CustomAsset.cpp45
1 files changed, 45 insertions, 0 deletions
diff --git a/Source/Core/VideoCommon/Assets/CustomAsset.cpp b/Source/Core/VideoCommon/Assets/CustomAsset.cpp
new file mode 100644
index 0000000000..545b60e093
--- /dev/null
+++ b/Source/Core/VideoCommon/Assets/CustomAsset.cpp
@@ -0,0 +1,45 @@
+// Copyright 2023 Dolphin Emulator Project
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "VideoCommon/Assets/CustomAsset.h"
+
+namespace VideoCommon
+{
+CustomAsset::CustomAsset(std::shared_ptr<CustomAssetLibrary> library,
+ const CustomAssetLibrary::AssetID& asset_id)
+ : m_owning_library(std::move(library)), m_asset_id(asset_id)
+{
+}
+
+bool CustomAsset::Load()
+{
+ const auto load_information = LoadImpl(m_asset_id);
+ if (load_information.m_bytes_loaded > 0)
+ {
+ m_bytes_loaded = load_information.m_bytes_loaded;
+ m_last_loaded_time = load_information.m_load_time;
+ }
+ return load_information.m_bytes_loaded != 0;
+}
+
+CustomAssetLibrary::TimeType CustomAsset::GetLastWriteTime() const
+{
+ return m_owning_library->GetLastAssetWriteTime(m_asset_id);
+}
+
+const CustomAssetLibrary::TimeType& CustomAsset::GetLastLoadedTime() const
+{
+ return m_last_loaded_time;
+}
+
+const CustomAssetLibrary::AssetID& CustomAsset::GetAssetId() const
+{
+ return m_asset_id;
+}
+
+std::size_t CustomAsset::GetByteSizeInMemory() const
+{
+ return m_bytes_loaded;
+}
+
+} // namespace VideoCommon