diff options
| -rw-r--r-- | src/video_core/textures/decoders.cpp | 4 | ||||
| -rw-r--r-- | src/video_core/textures/decoders.h | 18 | 
2 files changed, 8 insertions, 14 deletions
| diff --git a/src/video_core/textures/decoders.cpp b/src/video_core/textures/decoders.cpp index 5db75de22..150612aed 100644 --- a/src/video_core/textures/decoders.cpp +++ b/src/video_core/textures/decoders.cpp @@ -103,8 +103,8 @@ void FastProcessBlock(u8* const swizzled_data, u8* const unswizzled_data, const                  const u32 swizzle_offset{y_address + table[(xb / fast_swizzle_align) % 4]};                  const u32 out_x = xb * out_bytes_per_pixel / bytes_per_pixel;                  const u32 pixel_index{out_x + pixel_base}; -                data_ptrs[unswizzle] = swizzled_data + swizzle_offset; -                data_ptrs[!unswizzle] = unswizzled_data + pixel_index; +                data_ptrs[unswizzle ? 1 : 0] = swizzled_data + swizzle_offset; +                data_ptrs[unswizzle ? 0 : 1] = unswizzled_data + pixel_index;                  std::memcpy(data_ptrs[0], data_ptrs[1], fast_swizzle_align);              }              pixel_base += stride_x; diff --git a/src/video_core/textures/decoders.h b/src/video_core/textures/decoders.h index 85b7e9f7b..65df86890 100644 --- a/src/video_core/textures/decoders.h +++ b/src/video_core/textures/decoders.h @@ -16,16 +16,13 @@ inline std::size_t GetGOBSize() {      return 512;  } -/** - * Unswizzles a swizzled texture without changing its format. - */ +/// Unswizzles a swizzled texture without changing its format.  void UnswizzleTexture(u8* unswizzled_data, VAddr address, u32 tile_size_x, u32 tile_size_y,                        u32 bytes_per_pixel, u32 width, u32 height, u32 depth,                        u32 block_height = TICEntry::DefaultBlockHeight,                        u32 block_depth = TICEntry::DefaultBlockHeight, u32 width_spacing = 0); -/** - * Unswizzles a swizzled texture without changing its format. - */ + +/// Unswizzles a swizzled texture without changing its format.  std::vector<u8> UnswizzleTexture(VAddr address, u32 tile_size_x, u32 tile_size_y,                                   u32 bytes_per_pixel, u32 width, u32 height, u32 depth,                                   u32 block_height = TICEntry::DefaultBlockHeight, @@ -37,15 +34,11 @@ void CopySwizzledData(u32 width, u32 height, u32 depth, u32 bytes_per_pixel,                        u32 out_bytes_per_pixel, u8* swizzled_data, u8* unswizzled_data,                        bool unswizzle, u32 block_height, u32 block_depth, u32 width_spacing); -/** - * Decodes an unswizzled texture into a A8R8G8B8 texture. - */ +/// Decodes an unswizzled texture into a A8R8G8B8 texture.  std::vector<u8> DecodeTexture(const std::vector<u8>& texture_data, TextureFormat format, u32 width,                                u32 height); -/** - * This function calculates the correct size of a texture depending if it's tiled or not. - */ +/// This function calculates the correct size of a texture depending if it's tiled or not.  std::size_t CalculateSize(bool tiled, u32 bytes_per_pixel, u32 width, u32 height, u32 depth,                            u32 block_height, u32 block_depth); @@ -53,6 +46,7 @@ std::size_t CalculateSize(bool tiled, u32 bytes_per_pixel, u32 width, u32 height  void SwizzleSubrect(u32 subrect_width, u32 subrect_height, u32 source_pitch, u32 swizzled_width,                      u32 bytes_per_pixel, VAddr swizzled_data, VAddr unswizzled_data,                      u32 block_height); +  /// Copies a tiled subrectangle into a linear surface.  void UnswizzleSubrect(u32 subrect_width, u32 subrect_height, u32 dest_pitch, u32 swizzled_width,                        u32 bytes_per_pixel, VAddr swizzled_data, VAddr unswizzled_data, | 
