diff options
| author | iwubcode <iwubcode@users.noreply.github.com> | 2023-01-27 18:46:53 -0600 |
|---|---|---|
| committer | iwubcode <iwubcode@users.noreply.github.com> | 2023-01-27 18:46:53 -0600 |
| commit | 7bea39b39e9978ca8461adf68a2c28535719c48e (patch) | |
| tree | 7329c4aab053fada727c88bf996050f04e2bdb4f /Source/Core/VideoBackends/Software | |
| parent | 41272dc5f1b62f4a5a0562cc29eb3e83367d0f14 (diff) | |
VideoBackends: add a way to load data into a specific level AND layer, default to layer 0
Diffstat (limited to 'Source/Core/VideoBackends/Software')
| -rw-r--r-- | Source/Core/VideoBackends/Software/SWTexture.cpp | 13 | ||||
| -rw-r--r-- | Source/Core/VideoBackends/Software/SWTexture.h | 4 |
2 files changed, 7 insertions, 10 deletions
diff --git a/Source/Core/VideoBackends/Software/SWTexture.cpp b/Source/Core/VideoBackends/Software/SWTexture.cpp index 6805ff0eb8..4b55f1453c 100644 --- a/Source/Core/VideoBackends/Software/SWTexture.cpp +++ b/Source/Core/VideoBackends/Software/SWTexture.cpp @@ -92,16 +92,13 @@ void SWTexture::ResolveFromTexture(const AbstractTexture* src, const MathUtil::R } void SWTexture::Load(u32 level, u32 width, u32 height, u32 row_length, const u8* buffer, - size_t buffer_size) + size_t buffer_size, u32 layer) { - for (u32 layer = 0; layer < m_config.layers; layer++) + u8* data = GetData(layer, level); + for (u32 y = 0; y < height; y++) { - u8* data = GetData(layer, level); - for (u32 y = 0; y < height; y++) - { - memcpy(&data[width * y * sizeof(Pixel)], &buffer[y * row_length * sizeof(Pixel)], - width * sizeof(Pixel)); - } + memcpy(&data[width * y * sizeof(Pixel)], &buffer[y * row_length * sizeof(Pixel)], + width * sizeof(Pixel)); } } diff --git a/Source/Core/VideoBackends/Software/SWTexture.h b/Source/Core/VideoBackends/Software/SWTexture.h index e3b90eb978..899c8e90b9 100644 --- a/Source/Core/VideoBackends/Software/SWTexture.h +++ b/Source/Core/VideoBackends/Software/SWTexture.h @@ -26,8 +26,8 @@ public: u32 dst_layer, u32 dst_level) override; void ResolveFromTexture(const AbstractTexture* src, const MathUtil::Rectangle<int>& rect, u32 layer, u32 level) override; - void Load(u32 level, u32 width, u32 height, u32 row_length, const u8* buffer, - size_t buffer_size) override; + void Load(u32 level, u32 width, u32 height, u32 row_length, const u8* buffer, size_t buffer_size, + u32 layer) override; const u8* GetData(u32 layer, u32 level) const; u8* GetData(u32 layer, u32 level); |
