VideoCommon: Change PokeEFB to take a pointer rather than a vector

This saves allocating a vector for the pass-through path.
This commit is contained in:
Stenzek
2015-12-20 00:34:56 +10:00
parent 7b628c99ec
commit a61fc372bb
9 changed files with 20 additions and 44 deletions

View File

@ -44,7 +44,7 @@ void AsyncRequests::PullEventsInternal()
} while(!m_queue.empty() && m_queue.front().type == first_event.type);
lock.unlock();
g_renderer->PokeEFB(t, m_merged_efb_pokes);
g_renderer->PokeEFB(t, m_merged_efb_pokes.data(), m_merged_efb_pokes.size());
lock.lock();
continue;
}
@ -109,11 +109,17 @@ void AsyncRequests::HandleEvent(const AsyncRequests::Event& e)
switch (e.type)
{
case Event::EFB_POKE_COLOR:
g_renderer->AccessEFB(POKE_COLOR, e.efb_poke.x, e.efb_poke.y, e.efb_poke.data);
{
EfbPokeData poke = { e.efb_poke.x, e.efb_poke.y, e.efb_poke.data };
g_renderer->PokeEFB(POKE_COLOR, &poke, 1);
}
break;
case Event::EFB_POKE_Z:
g_renderer->AccessEFB(POKE_Z, e.efb_poke.x, e.efb_poke.y, e.efb_poke.data);
{
EfbPokeData poke = { e.efb_poke.x, e.efb_poke.y, e.efb_poke.data };
g_renderer->PokeEFB(POKE_Z, &poke, 1);
}
break;
case Event::EFB_PEEK_COLOR:

View File

@ -617,10 +617,3 @@ void Renderer::Swap(u32 xfbAddr, u32 fbWidth, u32 fbStride, u32 fbHeight, const
XFBWrited = false;
}
void Renderer::PokeEFB(EFBAccessType type, const std::vector<EfbPokeData>& data)
{
for (EfbPokeData poke : data)
{
AccessEFB(type, poke.x, poke.y, poke.data);
}
}

View File

@ -115,7 +115,7 @@ public:
static void RenderToXFB(u32 xfbAddr, const EFBRectangle& sourceRc, u32 fbStride, u32 fbHeight, float Gamma = 1.0f);
virtual u32 AccessEFB(EFBAccessType type, u32 x, u32 y, u32 poke_data) = 0;
virtual void PokeEFB(EFBAccessType type, const std::vector<EfbPokeData>& data);
virtual void PokeEFB(EFBAccessType type, const EfbPokeData* points, size_t num_points) = 0;
virtual u16 BBoxRead(int index) = 0;
virtual void BBoxWrite(int index, u16 value) = 0;