mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-24 06:39:46 -06:00
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:
@ -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:
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
|
Reference in New Issue
Block a user