Merge pull request #8513 from lioncash/bounding-box

VideoCommon/BoundingBox: Make interface for querying bounding box data
This commit is contained in:
Anthony
2019-12-07 18:40:02 -08:00
committed by GitHub
8 changed files with 95 additions and 41 deletions

View File

@ -128,12 +128,12 @@ u32 SWRenderer::AccessEFB(EFBAccessType type, u32 x, u32 y, u32 InputData)
u16 SWRenderer::BBoxRead(int index)
{
return BoundingBox::coords[index];
return BoundingBox::GetCoordinate(static_cast<BoundingBox::Coordinate>(index));
}
void SWRenderer::BBoxWrite(int index, u16 value)
{
BoundingBox::coords[index] = value;
BoundingBox::SetCoordinate(static_cast<BoundingBox::Coordinate>(index), value);
}
void SWRenderer::ClearScreen(const MathUtil::Rectangle<int>& rc, bool colorEnable, bool alphaEnable,

View File

@ -841,15 +841,8 @@ void Tev::Draw()
EfbInterface::IncPerfCounterQuadCount(PQ_ZCOMP_OUTPUT);
}
// branchless bounding box update
BoundingBox::coords[BoundingBox::LEFT] =
std::min((u16)Position[0], BoundingBox::coords[BoundingBox::LEFT]);
BoundingBox::coords[BoundingBox::RIGHT] =
std::max((u16)Position[0], BoundingBox::coords[BoundingBox::RIGHT]);
BoundingBox::coords[BoundingBox::TOP] =
std::min((u16)Position[1], BoundingBox::coords[BoundingBox::TOP]);
BoundingBox::coords[BoundingBox::BOTTOM] =
std::max((u16)Position[1], BoundingBox::coords[BoundingBox::BOTTOM]);
BoundingBox::Update(static_cast<u16>(Position[0]), static_cast<u16>(Position[0]),
static_cast<u16>(Position[1]), static_cast<u16>(Position[1]));
#if ALLOW_TEV_DUMPS
if (g_ActiveConfig.bDumpTevStages)