mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-30 01:29:42 -06:00
Change RunVertices' function arguments.
This reduces some dumb state shuffling when calling the emitted vertex loaders.
This commit is contained in:
@ -316,7 +316,7 @@ void VertexLoader::WriteCall(TPipelineFunction func)
|
||||
m_PipelineStages[m_numPipelineStages++] = func;
|
||||
}
|
||||
|
||||
int VertexLoader::RunVertices(int primitive, int count, DataReader src, DataReader dst)
|
||||
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();
|
||||
|
@ -32,7 +32,7 @@ class VertexLoader : public VertexLoaderBase
|
||||
public:
|
||||
VertexLoader(const TVtxDesc &vtx_desc, const VAT &vtx_attr);
|
||||
|
||||
int RunVertices(int primitive, int count, DataReader src, DataReader dst) override;
|
||||
int RunVertices(DataReader src, DataReader dst, int count, int primitive) override;
|
||||
std::string GetName() const override { return "OldLoader"; }
|
||||
bool IsInitialized() override { return true; } // This vertex loader supports all formats
|
||||
|
||||
|
@ -159,13 +159,13 @@ public:
|
||||
delete b;
|
||||
}
|
||||
|
||||
int RunVertices(int primitive, int count, DataReader src, DataReader dst) override
|
||||
int RunVertices(DataReader src, DataReader dst, int count, int primitive) 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(primitive, count, src, DataReader(buffer_a.data(), buffer_a.data()+buffer_a.size()));
|
||||
int count_b = b->RunVertices(primitive, count, src, DataReader(buffer_b.data(), buffer_b.data()+buffer_b.size()));
|
||||
int count_a = a->RunVertices(src, DataReader(buffer_a.data(), buffer_a.data()+buffer_a.size()), count, primitive);
|
||||
int count_b = b->RunVertices(src, DataReader(buffer_b.data(), buffer_b.data()+buffer_b.size()), count, primitive);
|
||||
|
||||
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);
|
||||
|
@ -74,7 +74,7 @@ public:
|
||||
static VertexLoaderBase* CreateVertexLoader(const TVtxDesc &vtx_desc, const VAT &vtx_attr);
|
||||
virtual ~VertexLoaderBase() {}
|
||||
|
||||
virtual int RunVertices(int primitive, int count, DataReader src, DataReader dst) = 0;
|
||||
virtual int RunVertices(DataReader src, DataReader dst, int count, int primitive) = 0;
|
||||
|
||||
virtual bool IsInitialized() = 0;
|
||||
|
||||
|
@ -164,7 +164,7 @@ int RunVertices(int vtx_attr_group, int primitive, int count, DataReader src, bo
|
||||
DataReader dst = VertexManager::PrepareForAdditionalData(primitive, count,
|
||||
loader->m_native_vtx_decl.stride, cullall);
|
||||
|
||||
count = loader->RunVertices(primitive, count, src, dst);
|
||||
count = loader->RunVertices(src, dst, count, primitive);
|
||||
|
||||
IndexGenerator::AddIndices(primitive, count);
|
||||
|
||||
|
@ -457,7 +457,7 @@ bool VertexLoaderX64::IsInitialized()
|
||||
return cpu_info.bSSSE3;
|
||||
}
|
||||
|
||||
int VertexLoaderX64::RunVertices(int primitive, int count, DataReader src, DataReader dst)
|
||||
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);
|
||||
|
@ -9,7 +9,7 @@ public:
|
||||
protected:
|
||||
std::string GetName() const override { return "VertexLoaderX64"; }
|
||||
bool IsInitialized() override;
|
||||
int RunVertices(int primitive, int count, DataReader src, DataReader dst) override;
|
||||
int RunVertices(DataReader src, DataReader dst, int count, int primitive) override;
|
||||
|
||||
private:
|
||||
u32 m_src_ofs = 0;
|
||||
|
Reference in New Issue
Block a user