int VertexLoaderX64::RunVertices(DataReader src, DataReader dst, int count) { m_numLoadedVertices += count; return ((int (*)(u8*, u8*, int, const void*))region)( src.GetPointer(), dst.GetPointer(), count, memory_base_ptr); }
int VertexLoader::RunVertices(DataReader src, DataReader dst, int count) { g_vertex_manager_write_ptr = dst.GetPointer(); g_video_buffer_read_ptr = src.GetPointer(); m_numLoadedVertices += count; m_skippedVertices = 0; for (m_counter = count - 1; m_counter >= 0; m_counter--) { m_tcIndex = 0; m_colIndex = 0; m_texmtxwrite = m_texmtxread = 0; for (int i = 0; i < m_numPipelineStages; i++) m_PipelineStages[i](this); PRIM_LOG("\n"); } return count - m_skippedVertices; }
int VertexLoader::RunVertices(DataReader src, DataReader dst, int count, int primitive) { g_vertex_manager_write_ptr = dst.GetPointer(); g_video_buffer_read_ptr = src.GetPointer(); m_numLoadedVertices += count; m_skippedVertices = 0; // Prepare bounding box if (!g_ActiveConfig.backend_info.bSupportsBBox) BoundingBox::Prepare(m_vat, primitive, m_VtxDesc, m_native_vtx_decl); for (int s = 0; s < count; s++) { m_tcIndex = 0; m_colIndex = 0; m_texmtxwrite = m_texmtxread = 0; for (int i = 0; i < m_numPipelineStages; i++) m_PipelineStages[i](this); PRIM_LOG("\n"); } return count - m_skippedVertices; }
int RunVertices(DataReader src, DataReader dst, int count) override { buffer_a.resize(count * a->m_native_vtx_decl.stride + 4); buffer_b.resize(count * b->m_native_vtx_decl.stride + 4); int count_a = a->RunVertices(src, DataReader(buffer_a.data(), buffer_a.data()+buffer_a.size()), count); int count_b = b->RunVertices(src, DataReader(buffer_b.data(), buffer_b.data()+buffer_b.size()), count); if (count_a != count_b) ERROR_LOG(VIDEO, "The two vertex loaders have loaded a different amount of vertices (a: %d, b: %d).", count_a, count_b); if (memcmp(buffer_a.data(), buffer_b.data(), std::min(count_a, count_b) * m_native_vtx_decl.stride)) ERROR_LOG(VIDEO, "The two vertex loaders have loaded different data " "(guru meditation 0x%016" PRIx64 ", 0x%08x, 0x%08x, 0x%08x).", m_VtxDesc.Hex, m_vat.g0.Hex, m_vat.g1.Hex, m_vat.g2.Hex); memcpy(dst.GetPointer(), buffer_a.data(), count_a * m_native_vtx_decl.stride); m_numLoadedVertices += count; return count_a; }
int VertexLoaderX64::RunVertices(DataReader src, DataReader dst, int count, int primitive) { m_numLoadedVertices += count; return ((int (*)(u8* src, u8* dst, int count))region)(src.GetPointer(), dst.GetPointer(), count); }