TextureConfig.cpp 1017 B

123456789101112131415161718192021222324252627282930313233343536
  1. // Copyright 2017 Dolphin Emulator Project
  2. // SPDX-License-Identifier: GPL-2.0-or-later
  3. #include "VideoCommon/TextureConfig.h"
  4. #include <tuple>
  5. #include "VideoCommon/AbstractTexture.h"
  6. bool TextureConfig::operator==(const TextureConfig& o) const
  7. {
  8. return std::tie(width, height, levels, layers, samples, format, flags, type) ==
  9. std::tie(o.width, o.height, o.levels, o.layers, o.samples, o.format, o.flags, o.type);
  10. }
  11. MathUtil::Rectangle<int> TextureConfig::GetRect() const
  12. {
  13. return {0, 0, static_cast<int>(width), static_cast<int>(height)};
  14. }
  15. MathUtil::Rectangle<int> TextureConfig::GetMipRect(u32 level) const
  16. {
  17. return {0, 0, static_cast<int>(std::max(width >> level, 1u)),
  18. static_cast<int>(std::max(height >> level, 1u))};
  19. }
  20. size_t TextureConfig::GetStride() const
  21. {
  22. return AbstractTexture::CalculateStrideForFormat(format, width);
  23. }
  24. size_t TextureConfig::GetMipStride(u32 level) const
  25. {
  26. return AbstractTexture::CalculateStrideForFormat(format, std::max(width >> level, 1u));
  27. }