diff options
| author | Stenzek <stenzek@gmail.com> | 2017-10-22 00:49:40 +1000 |
|---|---|---|
| committer | Stenzek <stenzek@gmail.com> | 2017-11-22 18:47:04 +1000 |
| commit | f43d85921dc85ae586d69b21d28a7578835a55bd (patch) | |
| tree | da734d7c52a1cbaeae276c601b99dd426fcf3d43 /Source/Core/VideoCommon/AbstractTexture.cpp | |
| parent | a584ccc7d882213d93586cae9063d9865311aaad (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.cpp | 23 |
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; |
