summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/TextureConfig.cpp
diff options
context:
space:
mode:
authorStenzek <stenzek@gmail.com>2017-10-22 00:49:40 +1000
committerStenzek <stenzek@gmail.com>2017-11-22 18:47:04 +1000
commitf43d85921dc85ae586d69b21d28a7578835a55bd (patch)
treeda734d7c52a1cbaeae276c601b99dd426fcf3d43 /Source/Core/VideoCommon/TextureConfig.cpp
parenta584ccc7d882213d93586cae9063d9865311aaad (diff)
VideoBackends: Add AbstractStagingTexture class
Can be used for asynchronous readback or upload of textures.
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));
+}