mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-02-02 02:52:30 +02:00
SWVertexLoader: Normalize class variable names
Follows our coding style.
This commit is contained in:
parent
e86713ca67
commit
4d2a4924cb
@ -39,7 +39,8 @@ SWVertexLoader::CreateNativeVertexFormat(const PortableVertexDeclaration& vtx_de
|
|||||||
return std::make_unique<NullNativeVertexFormat>(vtx_decl);
|
return std::make_unique<NullNativeVertexFormat>(vtx_decl);
|
||||||
}
|
}
|
||||||
|
|
||||||
SWVertexLoader::SWVertexLoader() : LocalVBuffer(MAXVBUFFERSIZE), LocalIBuffer(MAXIBUFFERSIZE)
|
SWVertexLoader::SWVertexLoader()
|
||||||
|
: m_local_vertex_buffer(MAXVBUFFERSIZE), m_local_index_buffer(MAXIBUFFERSIZE)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -49,8 +50,8 @@ SWVertexLoader::~SWVertexLoader()
|
|||||||
|
|
||||||
void SWVertexLoader::ResetBuffer(u32 stride)
|
void SWVertexLoader::ResetBuffer(u32 stride)
|
||||||
{
|
{
|
||||||
m_cur_buffer_pointer = m_base_buffer_pointer = LocalVBuffer.data();
|
m_cur_buffer_pointer = m_base_buffer_pointer = m_local_vertex_buffer.data();
|
||||||
m_end_buffer_pointer = m_cur_buffer_pointer + LocalVBuffer.size();
|
m_end_buffer_pointer = m_cur_buffer_pointer + m_local_vertex_buffer.size();
|
||||||
IndexGenerator::Start(GetIndexBuffer());
|
IndexGenerator::Start(GetIndexBuffer());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -74,7 +75,7 @@ void SWVertexLoader::vFlush()
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_SetupUnit.Init(primitiveType);
|
m_setup_unit.Init(primitiveType);
|
||||||
|
|
||||||
// set all states with are stored within video sw
|
// set all states with are stored within video sw
|
||||||
for (int i = 0; i < 4; i++)
|
for (int i = 0; i < 4; i++)
|
||||||
@ -87,37 +88,37 @@ void SWVertexLoader::vFlush()
|
|||||||
|
|
||||||
for (u32 i = 0; i < IndexGenerator::GetIndexLen(); i++)
|
for (u32 i = 0; i < IndexGenerator::GetIndexLen(); i++)
|
||||||
{
|
{
|
||||||
u16 index = LocalIBuffer[i];
|
const u16 index = m_local_index_buffer[i];
|
||||||
|
|
||||||
if (index == 0xffff)
|
if (index == 0xffff)
|
||||||
{
|
{
|
||||||
// primitive restart
|
// primitive restart
|
||||||
m_SetupUnit.Init(primitiveType);
|
m_setup_unit.Init(primitiveType);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
memset(&m_Vertex, 0, sizeof(m_Vertex));
|
memset(&m_vertex, 0, sizeof(m_vertex));
|
||||||
|
|
||||||
// Super Mario Sunshine requires those to be zero for those debug boxes.
|
// Super Mario Sunshine requires those to be zero for those debug boxes.
|
||||||
m_Vertex.color = {};
|
m_vertex.color = {};
|
||||||
|
|
||||||
// parse the videocommon format to our own struct format (m_Vertex)
|
// parse the videocommon format to our own struct format (m_vertex)
|
||||||
SetFormat(g_main_cp_state.last_id, primitiveType);
|
SetFormat(g_main_cp_state.last_id, primitiveType);
|
||||||
ParseVertex(VertexLoaderManager::GetCurrentVertexFormat()->GetVertexDeclaration(), index);
|
ParseVertex(VertexLoaderManager::GetCurrentVertexFormat()->GetVertexDeclaration(), index);
|
||||||
|
|
||||||
// transform this vertex so that it can be used for rasterization (outVertex)
|
// transform this vertex so that it can be used for rasterization (outVertex)
|
||||||
OutputVertexData* outVertex = m_SetupUnit.GetVertex();
|
OutputVertexData* outVertex = m_setup_unit.GetVertex();
|
||||||
TransformUnit::TransformPosition(&m_Vertex, outVertex);
|
TransformUnit::TransformPosition(&m_vertex, outVertex);
|
||||||
outVertex->normal = {};
|
outVertex->normal = {};
|
||||||
if (VertexLoaderManager::g_current_components & VB_HAS_NRM0)
|
if (VertexLoaderManager::g_current_components & VB_HAS_NRM0)
|
||||||
{
|
{
|
||||||
TransformUnit::TransformNormal(
|
TransformUnit::TransformNormal(
|
||||||
&m_Vertex, (VertexLoaderManager::g_current_components & VB_HAS_NRM2) != 0, outVertex);
|
&m_vertex, (VertexLoaderManager::g_current_components & VB_HAS_NRM2) != 0, outVertex);
|
||||||
}
|
}
|
||||||
TransformUnit::TransformColor(&m_Vertex, outVertex);
|
TransformUnit::TransformColor(&m_vertex, outVertex);
|
||||||
TransformUnit::TransformTexCoord(&m_Vertex, outVertex, m_TexGenSpecialCase);
|
TransformUnit::TransformTexCoord(&m_vertex, outVertex, m_tex_gen_special_case);
|
||||||
|
|
||||||
// assemble and rasterize the primitive
|
// assemble and rasterize the primitive
|
||||||
m_SetupUnit.SetupVertex();
|
m_setup_unit.SetupVertex();
|
||||||
|
|
||||||
INCSTAT(stats.thisFrame.numVerticesLoaded)
|
INCSTAT(stats.thisFrame.numVerticesLoaded)
|
||||||
}
|
}
|
||||||
@ -141,20 +142,20 @@ void SWVertexLoader::SetFormat(u8 attributeIndex, u8 primitiveType)
|
|||||||
ERROR_LOG(VIDEO, "Matrix indices don't match");
|
ERROR_LOG(VIDEO, "Matrix indices don't match");
|
||||||
}
|
}
|
||||||
|
|
||||||
m_Vertex.posMtx = xfmem.MatrixIndexA.PosNormalMtxIdx;
|
m_vertex.posMtx = xfmem.MatrixIndexA.PosNormalMtxIdx;
|
||||||
m_Vertex.texMtx[0] = xfmem.MatrixIndexA.Tex0MtxIdx;
|
m_vertex.texMtx[0] = xfmem.MatrixIndexA.Tex0MtxIdx;
|
||||||
m_Vertex.texMtx[1] = xfmem.MatrixIndexA.Tex1MtxIdx;
|
m_vertex.texMtx[1] = xfmem.MatrixIndexA.Tex1MtxIdx;
|
||||||
m_Vertex.texMtx[2] = xfmem.MatrixIndexA.Tex2MtxIdx;
|
m_vertex.texMtx[2] = xfmem.MatrixIndexA.Tex2MtxIdx;
|
||||||
m_Vertex.texMtx[3] = xfmem.MatrixIndexA.Tex3MtxIdx;
|
m_vertex.texMtx[3] = xfmem.MatrixIndexA.Tex3MtxIdx;
|
||||||
m_Vertex.texMtx[4] = xfmem.MatrixIndexB.Tex4MtxIdx;
|
m_vertex.texMtx[4] = xfmem.MatrixIndexB.Tex4MtxIdx;
|
||||||
m_Vertex.texMtx[5] = xfmem.MatrixIndexB.Tex5MtxIdx;
|
m_vertex.texMtx[5] = xfmem.MatrixIndexB.Tex5MtxIdx;
|
||||||
m_Vertex.texMtx[6] = xfmem.MatrixIndexB.Tex6MtxIdx;
|
m_vertex.texMtx[6] = xfmem.MatrixIndexB.Tex6MtxIdx;
|
||||||
m_Vertex.texMtx[7] = xfmem.MatrixIndexB.Tex7MtxIdx;
|
m_vertex.texMtx[7] = xfmem.MatrixIndexB.Tex7MtxIdx;
|
||||||
|
|
||||||
// special case if only pos and tex coord 0 and tex coord input is AB11
|
// special case if only pos and tex coord 0 and tex coord input is AB11
|
||||||
// http://libogc.devkitpro.org/gx_8h.html#a55a426a3ff796db584302bddd829f002
|
// http://libogc.devkitpro.org/gx_8h.html#a55a426a3ff796db584302bddd829f002
|
||||||
m_TexGenSpecialCase = VertexLoaderManager::g_current_components == VB_HAS_UV0 &&
|
m_tex_gen_special_case = VertexLoaderManager::g_current_components == VB_HAS_UV0 &&
|
||||||
xfmem.texMtxInfo[0].projection == XF_TEXPROJ_ST;
|
xfmem.texMtxInfo[0].projection == XF_TEXPROJ_ST;
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename T, typename I>
|
template <typename T, typename I>
|
||||||
@ -214,31 +215,32 @@ static void ReadVertexAttribute(T* dst, DataReader src, const AttributeFormat& f
|
|||||||
|
|
||||||
void SWVertexLoader::ParseVertex(const PortableVertexDeclaration& vdec, int index)
|
void SWVertexLoader::ParseVertex(const PortableVertexDeclaration& vdec, int index)
|
||||||
{
|
{
|
||||||
DataReader src(LocalVBuffer.data(), LocalVBuffer.data() + LocalVBuffer.size());
|
DataReader src(m_local_vertex_buffer.data(),
|
||||||
|
m_local_vertex_buffer.data() + m_local_vertex_buffer.size());
|
||||||
src.Skip(index * vdec.stride);
|
src.Skip(index * vdec.stride);
|
||||||
|
|
||||||
ReadVertexAttribute<float>(&m_Vertex.position[0], src, vdec.position, 0, 3, false);
|
ReadVertexAttribute<float>(&m_vertex.position[0], src, vdec.position, 0, 3, false);
|
||||||
|
|
||||||
for (std::size_t i = 0; i < m_Vertex.normal.size(); i++)
|
for (std::size_t i = 0; i < m_vertex.normal.size(); i++)
|
||||||
{
|
{
|
||||||
ReadVertexAttribute<float>(&m_Vertex.normal[i][0], src, vdec.normals[i], 0, 3, false);
|
ReadVertexAttribute<float>(&m_vertex.normal[i][0], src, vdec.normals[i], 0, 3, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (std::size_t i = 0; i < m_Vertex.color.size(); i++)
|
for (std::size_t i = 0; i < m_vertex.color.size(); i++)
|
||||||
{
|
{
|
||||||
ReadVertexAttribute<u8>(m_Vertex.color[i].data(), src, vdec.colors[i], 0, 4, true);
|
ReadVertexAttribute<u8>(m_vertex.color[i].data(), src, vdec.colors[i], 0, 4, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (std::size_t i = 0; i < m_Vertex.texCoords.size(); i++)
|
for (std::size_t i = 0; i < m_vertex.texCoords.size(); i++)
|
||||||
{
|
{
|
||||||
ReadVertexAttribute<float>(m_Vertex.texCoords[i].data(), src, vdec.texcoords[i], 0, 2, false);
|
ReadVertexAttribute<float>(m_vertex.texCoords[i].data(), src, vdec.texcoords[i], 0, 2, false);
|
||||||
|
|
||||||
// the texmtr is stored as third component of the texCoord
|
// the texmtr is stored as third component of the texCoord
|
||||||
if (vdec.texcoords[i].components >= 3)
|
if (vdec.texcoords[i].components >= 3)
|
||||||
{
|
{
|
||||||
ReadVertexAttribute<u8>(&m_Vertex.texMtx[i], src, vdec.texcoords[i], 2, 1, false);
|
ReadVertexAttribute<u8>(&m_vertex.texMtx[i], src, vdec.texcoords[i], 2, 1, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ReadVertexAttribute<u8>(&m_Vertex.posMtx, src, vdec.posmtx, 0, 1, false);
|
ReadVertexAttribute<u8>(&m_vertex.posMtx, src, vdec.posmtx, 0, 1, false);
|
||||||
}
|
}
|
||||||
|
@ -25,19 +25,19 @@ public:
|
|||||||
|
|
||||||
protected:
|
protected:
|
||||||
void ResetBuffer(u32 stride) override;
|
void ResetBuffer(u32 stride) override;
|
||||||
u16* GetIndexBuffer() { return &LocalIBuffer[0]; }
|
u16* GetIndexBuffer() { return &m_local_index_buffer[0]; }
|
||||||
private:
|
private:
|
||||||
void vFlush() override;
|
void vFlush() override;
|
||||||
std::vector<u8> LocalVBuffer;
|
std::vector<u8> m_local_vertex_buffer;
|
||||||
std::vector<u16> LocalIBuffer;
|
std::vector<u16> m_local_index_buffer;
|
||||||
|
|
||||||
InputVertexData m_Vertex;
|
InputVertexData m_vertex;
|
||||||
|
|
||||||
void ParseVertex(const PortableVertexDeclaration& vdec, int index);
|
void ParseVertex(const PortableVertexDeclaration& vdec, int index);
|
||||||
|
|
||||||
SetupUnit m_SetupUnit;
|
SetupUnit m_setup_unit;
|
||||||
|
|
||||||
bool m_TexGenSpecialCase;
|
bool m_tex_gen_special_case;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
void SetFormat(u8 attributeIndex, u8 primitiveType);
|
void SetFormat(u8 attributeIndex, u8 primitiveType);
|
||||||
|
Loading…
Reference in New Issue
Block a user