summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/GraphicsModSystem
diff options
context:
space:
mode:
authoriwubcode <iwubcode@users.noreply.github.com>2023-08-13 16:09:45 -0500
committeriwubcode <iwubcode@users.noreply.github.com>2023-09-02 20:20:09 -0500
commit62fee2f3b60c84b27efbb0792e3695bbe812ac1a (patch)
tree1ba80d4b42fefe1a9525dec7884938eb0c840ef1 /Source/Core/VideoCommon/GraphicsModSystem
parent5e5887a378db28324a8fc8825f21539525412e12 (diff)
VideoCommon: add loading cube maps from DDS files and loading it into our custom texture object. Custom texture object now has the concept of slices in addition to levels. Traditional custom textures have a single slice
Diffstat (limited to 'Source/Core/VideoCommon/GraphicsModSystem')
-rw-r--r--Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/CustomPipelineAction.cpp16
1 files changed, 12 insertions, 4 deletions
diff --git a/Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/CustomPipelineAction.cpp b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/CustomPipelineAction.cpp
index b774324a58..4d8df6a218 100644
--- a/Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/CustomPipelineAction.cpp
+++ b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/CustomPipelineAction.cpp
@@ -423,15 +423,23 @@ void CustomPipelineAction::OnTextureCreate(GraphicsModActionData::TextureCreate*
auto data = game_texture.m_asset->GetData();
if (data)
{
- if (create->texture_width != data->m_levels[0].width ||
- create->texture_height != data->m_levels[0].height)
+ if (data->m_slices.empty() || data->m_slices[0].m_levels.empty())
+ {
+ ERROR_LOG_FMT(
+ VIDEO,
+ "Custom pipeline for texture '{}' has asset '{}' that does not have any texture data",
+ create->texture_name, game_texture.m_asset->GetAssetId());
+ m_valid = false;
+ }
+ else if (create->texture_width != data->m_slices[0].m_levels[0].width ||
+ create->texture_height != data->m_slices[0].m_levels[0].height)
{
ERROR_LOG_FMT(VIDEO,
"Custom pipeline for texture '{}' has asset '{}' that does not match "
"the width/height of the texture loaded. Texture {}x{} vs asset {}x{}",
create->texture_name, game_texture.m_asset->GetAssetId(),
- create->texture_width, create->texture_height, data->m_levels[0].width,
- data->m_levels[0].height);
+ create->texture_width, create->texture_height,
+ data->m_slices[0].m_levels[0].width, data->m_slices[0].m_levels[0].height);
m_valid = false;
}
}