diff options
| author | Stenzek <stenzek@gmail.com> | 2015-12-20 00:34:56 +1000 |
|---|---|---|
| committer | Stenzek <stenzek@gmail.com> | 2015-12-20 14:42:14 +1000 |
| commit | a61fc372bbb538cba7bf43a6402f3036fb468810 (patch) | |
| tree | 02d3994714326189f0f57c7fc21efb970aedb567 /Source/Core/VideoCommon | |
| parent | 7b628c99ec4731ab606b8dd50ce3c3223d81b4eb (diff) | |
VideoCommon: Change PokeEFB to take a pointer rather than a vector
This saves allocating a vector for the pass-through path.
Diffstat (limited to 'Source/Core/VideoCommon')
| -rw-r--r-- | Source/Core/VideoCommon/AsyncRequests.cpp | 12 | ||||
| -rw-r--r-- | Source/Core/VideoCommon/RenderBase.cpp | 7 | ||||
| -rw-r--r-- | Source/Core/VideoCommon/RenderBase.h | 2 |
3 files changed, 10 insertions, 11 deletions
diff --git a/Source/Core/VideoCommon/AsyncRequests.cpp b/Source/Core/VideoCommon/AsyncRequests.cpp index 993b6bce2c..1ce7c8fdb7 100644 --- a/Source/Core/VideoCommon/AsyncRequests.cpp +++ b/Source/Core/VideoCommon/AsyncRequests.cpp @@ -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: diff --git a/Source/Core/VideoCommon/RenderBase.cpp b/Source/Core/VideoCommon/RenderBase.cpp index 89bfa4dce1..3742145ebc 100644 --- a/Source/Core/VideoCommon/RenderBase.cpp +++ b/Source/Core/VideoCommon/RenderBase.cpp @@ -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); - } -} diff --git a/Source/Core/VideoCommon/RenderBase.h b/Source/Core/VideoCommon/RenderBase.h index ad53f2f20c..773fb45ee5 100644 --- a/Source/Core/VideoCommon/RenderBase.h +++ b/Source/Core/VideoCommon/RenderBase.h @@ -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; |
