summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/TextureConfig.cpp
blob: 34fd9324df1f77b05c153fa3fd1b7fe807db852c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
// Copyright 2017 Dolphin Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later

#include "VideoCommon/TextureConfig.h"

#include <tuple>

#include "VideoCommon/AbstractTexture.h"

bool TextureConfig::operator==(const TextureConfig& o) const
{
  return std::tie(width, height, levels, layers, samples, format, flags) ==
         std::tie(o.width, o.height, o.levels, o.layers, o.samples, o.format, o.flags);
}

bool TextureConfig::operator!=(const TextureConfig& o) const
{
  return !operator==(o);
}

MathUtil::Rectangle<int> TextureConfig::GetRect() const
{
  return {0, 0, static_cast<int>(width), static_cast<int>(height)};
}

MathUtil::Rectangle<int> TextureConfig::GetMipRect(u32 level) const
{
  return {0, 0, static_cast<int>(std::max(width >> level, 1u)),
          static_cast<int>(std::max(height >> level, 1u))};
}

size_t TextureConfig::GetStride() const
{
  return AbstractTexture::CalculateStrideForFormat(format, width);
}

size_t TextureConfig::GetMipStride(u32 level) const
{
  return AbstractTexture::CalculateStrideForFormat(format, std::max(width >> level, 1u));
}