summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/TextureConfig.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Core/VideoCommon/TextureConfig.cpp')
-rw-r--r--Source/Core/VideoCommon/TextureConfig.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/Source/Core/VideoCommon/TextureConfig.cpp b/Source/Core/VideoCommon/TextureConfig.cpp
index 7a6930c798..d8155d59b1 100644
--- a/Source/Core/VideoCommon/TextureConfig.cpp
+++ b/Source/Core/VideoCommon/TextureConfig.cpp
@@ -3,6 +3,7 @@
// Refer to the license.txt file included.
#include "VideoCommon/TextureConfig.h"
+#include "VideoCommon/AbstractTexture.h"
#include <tuple>
@@ -12,7 +13,28 @@ bool TextureConfig::operator==(const TextureConfig& o) const
std::tie(o.width, o.height, o.levels, o.layers, o.format, o.rendertarget);
}
+bool TextureConfig::operator!=(const TextureConfig& o) const
+{
+ return !operator==(o);
+}
+
MathUtil::Rectangle<int> TextureConfig::GetRect() const
{
return {0, 0, static_cast<int>(width), static_cast<int>(height)};
}
+
+MathUtil::Rectangle<int> TextureConfig::GetMipRect(u32 level) const
+{
+ return {0, 0, static_cast<int>(std::max(width >> level, 1u)),
+ static_cast<int>(std::max(height >> level, 1u))};
+}
+
+size_t TextureConfig::GetStride() const
+{
+ return AbstractTexture::CalculateStrideForFormat(format, width);
+}
+
+size_t TextureConfig::GetMipStride(u32 level) const
+{
+ return AbstractTexture::CalculateStrideForFormat(format, std::max(width >> level, 1u));
+}