summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/AbstractTexture.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/AbstractTexture.cpp
parenta584ccc7d882213d93586cae9063d9865311aaad (diff)
VideoBackends: Add AbstractStagingTexture class
Can be used for asynchronous readback or upload of textures.
Diffstat (limited to 'Source/Core/VideoCommon/AbstractTexture.cpp')
-rw-r--r--Source/Core/VideoCommon/AbstractTexture.cpp23
1 files changed, 21 insertions, 2 deletions
diff --git a/Source/Core/VideoCommon/AbstractTexture.cpp b/Source/Core/VideoCommon/AbstractTexture.cpp
index 9fa099e602..7e09be5344 100644
--- a/Source/Core/VideoCommon/AbstractTexture.cpp
+++ b/Source/Core/VideoCommon/AbstractTexture.cpp
@@ -100,7 +100,7 @@ AbstractTexture::MapRegionImpl(u32 level, u32 x, u32 y, u32 width, u32 height)
return {};
}
-bool AbstractTexture::IsCompressedHostTextureFormat(AbstractTextureFormat format)
+bool AbstractTexture::IsCompressedFormat(AbstractTextureFormat format)
{
switch (format)
{
@@ -115,7 +115,7 @@ bool AbstractTexture::IsCompressedHostTextureFormat(AbstractTextureFormat format
}
}
-size_t AbstractTexture::CalculateHostTextureLevelPitch(AbstractTextureFormat format, u32 row_length)
+size_t AbstractTexture::CalculateStrideForFormat(AbstractTextureFormat format, u32 row_length)
{
switch (format)
{
@@ -134,6 +134,25 @@ size_t AbstractTexture::CalculateHostTextureLevelPitch(AbstractTextureFormat for
}
}
+size_t AbstractTexture::GetTexelSizeForFormat(AbstractTextureFormat format)
+{
+ switch (format)
+ {
+ case AbstractTextureFormat::DXT1:
+ return 8;
+ case AbstractTextureFormat::DXT3:
+ case AbstractTextureFormat::DXT5:
+ case AbstractTextureFormat::BPTC:
+ return 16;
+ case AbstractTextureFormat::RGBA8:
+ case AbstractTextureFormat::BGRA8:
+ return 4;
+ default:
+ PanicAlert("Unhandled texture format.");
+ return 0;
+ }
+}
+
const TextureConfig& AbstractTexture::GetConfig() const
{
return m_config;