summaryrefslogtreecommitdiff
path: root/Source/Plugins/Plugin_VideoSoftware/Src/SWVertexLoader.cpp
diff options
context:
space:
mode:
authorLioncash <mathew1800@gmail.com>2013-04-13 23:54:02 -0400
committerLioncash <mathew1800@gmail.com>2013-04-13 23:54:02 -0400
commit7ab0cca6455830a838b1b1e38e2c3f265e4e5d0b (patch)
treec0e29f86306e35d624cf60bfbeb3b9a1a200d4a1 /Source/Plugins/Plugin_VideoSoftware/Src/SWVertexLoader.cpp
parent48927c17d252223ffdaa5cfb34aa850eb6ee6ee1 (diff)
Clean up most (99.99%) of the tab/space mismatches in the VideoSoftware project.
Got rid of trailing spaces that were unnecessary too. Also update the license header for this project. We don't use SVN anymore.
Diffstat (limited to 'Source/Plugins/Plugin_VideoSoftware/Src/SWVertexLoader.cpp')
-rw-r--r--Source/Plugins/Plugin_VideoSoftware/Src/SWVertexLoader.cpp241
1 files changed, 123 insertions, 118 deletions
diff --git a/Source/Plugins/Plugin_VideoSoftware/Src/SWVertexLoader.cpp b/Source/Plugins/Plugin_VideoSoftware/Src/SWVertexLoader.cpp
index 063e806865..44323951de 100644
--- a/Source/Plugins/Plugin_VideoSoftware/Src/SWVertexLoader.cpp
+++ b/Source/Plugins/Plugin_VideoSoftware/Src/SWVertexLoader.cpp
@@ -12,7 +12,7 @@
// A copy of the GPL 2.0 should have been included with the program.
// If not, see http://www.gnu.org/licenses/
-// Official SVN repository and contact information can be found at
+// Official Git repository and contact information can be found at
// http://code.google.com/p/dolphin-emu/
#include "Common.h"
@@ -41,72 +41,74 @@ extern float tcScale[8];
SWVertexLoader::SWVertexLoader() :
- m_VertexSize(0),
- m_NumAttributeLoaders(0)
+ m_VertexSize(0),
+ m_NumAttributeLoaders(0)
{
- VertexLoader_Normal::Init();
- VertexLoader_Position::Init();
- VertexLoader_TextCoord::Init();
+ VertexLoader_Normal::Init();
+ VertexLoader_Position::Init();
+ VertexLoader_TextCoord::Init();
- m_SetupUnit = new SetupUnit;
+ m_SetupUnit = new SetupUnit;
}
SWVertexLoader::~SWVertexLoader()
{
- delete m_SetupUnit;
- m_SetupUnit = NULL;
+ delete m_SetupUnit;
+ m_SetupUnit = NULL;
}
void SWVertexLoader::SetFormat(u8 attributeIndex, u8 primitiveType)
{
- m_CurrentVat = &g_VtxAttr[attributeIndex];
-
- posScale = 1.0f / float(1 << m_CurrentVat->g0.PosFrac);
- tcScale[0] = 1.0f / float(1 << m_CurrentVat->g0.Tex0Frac);
- tcScale[1] = 1.0f / float(1 << m_CurrentVat->g1.Tex1Frac);
- tcScale[2] = 1.0f / float(1 << m_CurrentVat->g1.Tex2Frac);
- tcScale[3] = 1.0f / float(1 << m_CurrentVat->g1.Tex3Frac);
- tcScale[4] = 1.0f / float(1 << m_CurrentVat->g2.Tex4Frac);
- tcScale[5] = 1.0f / float(1 << m_CurrentVat->g2.Tex5Frac);
- tcScale[6] = 1.0f / float(1 << m_CurrentVat->g2.Tex6Frac);
- tcScale[7] = 1.0f / float(1 << m_CurrentVat->g2.Tex7Frac);
-
- //TexMtx
- const u32 tmDesc[8] = {
- g_VtxDesc.Tex0MatIdx, g_VtxDesc.Tex1MatIdx, g_VtxDesc.Tex2MatIdx, g_VtxDesc.Tex3MatIdx,
+ m_CurrentVat = &g_VtxAttr[attributeIndex];
+
+ posScale = 1.0f / float(1 << m_CurrentVat->g0.PosFrac);
+ tcScale[0] = 1.0f / float(1 << m_CurrentVat->g0.Tex0Frac);
+ tcScale[1] = 1.0f / float(1 << m_CurrentVat->g1.Tex1Frac);
+ tcScale[2] = 1.0f / float(1 << m_CurrentVat->g1.Tex2Frac);
+ tcScale[3] = 1.0f / float(1 << m_CurrentVat->g1.Tex3Frac);
+ tcScale[4] = 1.0f / float(1 << m_CurrentVat->g2.Tex4Frac);
+ tcScale[5] = 1.0f / float(1 << m_CurrentVat->g2.Tex5Frac);
+ tcScale[6] = 1.0f / float(1 << m_CurrentVat->g2.Tex6Frac);
+ tcScale[7] = 1.0f / float(1 << m_CurrentVat->g2.Tex7Frac);
+
+ //TexMtx
+ const u32 tmDesc[8] = {
+ g_VtxDesc.Tex0MatIdx, g_VtxDesc.Tex1MatIdx, g_VtxDesc.Tex2MatIdx, g_VtxDesc.Tex3MatIdx,
g_VtxDesc.Tex4MatIdx, g_VtxDesc.Tex5MatIdx, g_VtxDesc.Tex6MatIdx, g_VtxDesc.Tex7MatIdx
};
- // Colors
+
+ // Colors
const u32 colDesc[2] = {g_VtxDesc.Color0, g_VtxDesc.Color1};
- colElements[0] = m_CurrentVat->g0.Color0Elements;
- colElements[1] = m_CurrentVat->g0.Color1Elements;
- const u32 colComp[2] = {m_CurrentVat->g0.Color0Comp, m_CurrentVat->g0.Color1Comp};
+ colElements[0] = m_CurrentVat->g0.Color0Elements;
+ colElements[1] = m_CurrentVat->g0.Color1Elements;
+ const u32 colComp[2] = {m_CurrentVat->g0.Color0Comp, m_CurrentVat->g0.Color1Comp};
+
// TextureCoord
const u32 tcDesc[8] = {
g_VtxDesc.Tex0Coord, g_VtxDesc.Tex1Coord, g_VtxDesc.Tex2Coord, g_VtxDesc.Tex3Coord,
g_VtxDesc.Tex4Coord, g_VtxDesc.Tex5Coord, g_VtxDesc.Tex6Coord, (const u32)((g_VtxDesc.Hex >> 31) & 3)
};
- const u32 tcElements[8] = {
- m_CurrentVat->g0.Tex0CoordElements, m_CurrentVat->g1.Tex1CoordElements, m_CurrentVat->g1.Tex2CoordElements,
- m_CurrentVat->g1.Tex3CoordElements, m_CurrentVat->g1.Tex4CoordElements, m_CurrentVat->g2.Tex5CoordElements,
- m_CurrentVat->g2.Tex6CoordElements, m_CurrentVat->g2.Tex7CoordElements
- };
-
- const u32 tcFormat[8] = {
- m_CurrentVat->g0.Tex0CoordFormat, m_CurrentVat->g1.Tex1CoordFormat, m_CurrentVat->g1.Tex2CoordFormat,
- m_CurrentVat->g1.Tex3CoordFormat, m_CurrentVat->g1.Tex4CoordFormat, m_CurrentVat->g2.Tex5CoordFormat,
- m_CurrentVat->g2.Tex6CoordFormat, m_CurrentVat->g2.Tex7CoordFormat
- };
-
- m_VertexSize = 0;
-
+ const u32 tcElements[8] = {
+ m_CurrentVat->g0.Tex0CoordElements, m_CurrentVat->g1.Tex1CoordElements, m_CurrentVat->g1.Tex2CoordElements,
+ m_CurrentVat->g1.Tex3CoordElements, m_CurrentVat->g1.Tex4CoordElements, m_CurrentVat->g2.Tex5CoordElements,
+ m_CurrentVat->g2.Tex6CoordElements, m_CurrentVat->g2.Tex7CoordElements
+ };
+
+ const u32 tcFormat[8] = {
+ m_CurrentVat->g0.Tex0CoordFormat, m_CurrentVat->g1.Tex1CoordFormat, m_CurrentVat->g1.Tex2CoordFormat,
+ m_CurrentVat->g1.Tex3CoordFormat, m_CurrentVat->g1.Tex4CoordFormat, m_CurrentVat->g2.Tex5CoordFormat,
+ m_CurrentVat->g2.Tex6CoordFormat, m_CurrentVat->g2.Tex7CoordFormat
+ };
+
+ m_VertexSize = 0;
+
// Reset pipeline
m_positionLoader = NULL;
- m_normalLoader = NULL;
- m_NumAttributeLoaders = 0;
+ m_normalLoader = NULL;
+ m_NumAttributeLoaders = 0;
- // Reset vertex
- // matrix index from xf regs or cp memory?
+ // Reset vertex
+ // matrix index from xf regs or cp memory?
if (swxfregs.MatrixIndexA.PosNormalMtxIdx != MatrixIndexA.PosNormalMtxIdx ||
swxfregs.MatrixIndexA.Tex0MtxIdx != MatrixIndexA.Tex0MtxIdx ||
swxfregs.MatrixIndexA.Tex1MtxIdx != MatrixIndexA.Tex1MtxIdx ||
@@ -126,39 +128,41 @@ void SWVertexLoader::SetFormat(u8 attributeIndex, u8 primitiveType)
}
#if(1)
- m_Vertex.posMtx = swxfregs.MatrixIndexA.PosNormalMtxIdx;
- m_Vertex.texMtx[0] = swxfregs.MatrixIndexA.Tex0MtxIdx;
- m_Vertex.texMtx[1] = swxfregs.MatrixIndexA.Tex1MtxIdx;
- m_Vertex.texMtx[2] = swxfregs.MatrixIndexA.Tex2MtxIdx;
- m_Vertex.texMtx[3] = swxfregs.MatrixIndexA.Tex3MtxIdx;
- m_Vertex.texMtx[4] = swxfregs.MatrixIndexB.Tex4MtxIdx;
- m_Vertex.texMtx[5] = swxfregs.MatrixIndexB.Tex5MtxIdx;
- m_Vertex.texMtx[6] = swxfregs.MatrixIndexB.Tex6MtxIdx;
- m_Vertex.texMtx[7] = swxfregs.MatrixIndexB.Tex7MtxIdx;
+ m_Vertex.posMtx = swxfregs.MatrixIndexA.PosNormalMtxIdx;
+ m_Vertex.texMtx[0] = swxfregs.MatrixIndexA.Tex0MtxIdx;
+ m_Vertex.texMtx[1] = swxfregs.MatrixIndexA.Tex1MtxIdx;
+ m_Vertex.texMtx[2] = swxfregs.MatrixIndexA.Tex2MtxIdx;
+ m_Vertex.texMtx[3] = swxfregs.MatrixIndexA.Tex3MtxIdx;
+ m_Vertex.texMtx[4] = swxfregs.MatrixIndexB.Tex4MtxIdx;
+ m_Vertex.texMtx[5] = swxfregs.MatrixIndexB.Tex5MtxIdx;
+ m_Vertex.texMtx[6] = swxfregs.MatrixIndexB.Tex6MtxIdx;
+ m_Vertex.texMtx[7] = swxfregs.MatrixIndexB.Tex7MtxIdx;
#else
- m_Vertex.posMtx = MatrixIndexA.PosNormalMtxIdx;
- m_Vertex.texMtx[0] = MatrixIndexA.Tex0MtxIdx;
- m_Vertex.texMtx[1] = MatrixIndexA.Tex1MtxIdx;
- m_Vertex.texMtx[2] = MatrixIndexA.Tex2MtxIdx;
- m_Vertex.texMtx[3] = MatrixIndexA.Tex3MtxIdx;
- m_Vertex.texMtx[4] = MatrixIndexB.Tex4MtxIdx;
- m_Vertex.texMtx[5] = MatrixIndexB.Tex5MtxIdx;
- m_Vertex.texMtx[6] = MatrixIndexB.Tex6MtxIdx;
- m_Vertex.texMtx[7] = MatrixIndexB.Tex7MtxIdx;
+ m_Vertex.posMtx = MatrixIndexA.PosNormalMtxIdx;
+ m_Vertex.texMtx[0] = MatrixIndexA.Tex0MtxIdx;
+ m_Vertex.texMtx[1] = MatrixIndexA.Tex1MtxIdx;
+ m_Vertex.texMtx[2] = MatrixIndexA.Tex2MtxIdx;
+ m_Vertex.texMtx[3] = MatrixIndexA.Tex3MtxIdx;
+ m_Vertex.texMtx[4] = MatrixIndexB.Tex4MtxIdx;
+ m_Vertex.texMtx[5] = MatrixIndexB.Tex5MtxIdx;
+ m_Vertex.texMtx[6] = MatrixIndexB.Tex6MtxIdx;
+ m_Vertex.texMtx[7] = MatrixIndexB.Tex7MtxIdx;
#endif
- if (g_VtxDesc.PosMatIdx != NOT_PRESENT) {
- AddAttributeLoader(LoadPosMtx);
- m_VertexSize++;
- }
+ if (g_VtxDesc.PosMatIdx != NOT_PRESENT)
+ {
+ AddAttributeLoader(LoadPosMtx);
+ m_VertexSize++;
+ }
- for (int i = 0; i < 8; ++i) {
- if (tmDesc[i] != NOT_PRESENT)
- {
- AddAttributeLoader(LoadTexMtx, i);
- m_VertexSize++;
- }
- }
+ for (int i = 0; i < 8; ++i)
+ {
+ if (tmDesc[i] != NOT_PRESENT)
+ {
+ AddAttributeLoader(LoadTexMtx, i);
+ m_VertexSize++;
+ }
+ }
// Write vertex position loader
m_positionLoader = VertexLoader_Position::GetFunction(g_VtxDesc.Position, m_CurrentVat->g0.PosFormat, m_CurrentVat->g0.PosElements);
@@ -178,14 +182,15 @@ void SWVertexLoader::SetFormat(u8 attributeIndex, u8 primitiveType)
{
ERROR_LOG(VIDEO, "VertexLoader_Normal::GetFunction returned zero!");
}
- AddAttributeLoader(LoadNormal);
- }
+ AddAttributeLoader(LoadNormal);
+ }
- for (int i = 0; i < 2; i++) {
+ for (int i = 0; i < 2; i++)
+ {
switch (colDesc[i])
{
case NOT_PRESENT:
- m_colorLoader[i] = NULL;
+ m_colorLoader[i] = NULL;
break;
case DIRECT:
switch (colComp[i])
@@ -198,7 +203,7 @@ void SWVertexLoader::SetFormat(u8 attributeIndex, u8 primitiveType)
case FORMAT_32B_8888: m_VertexSize += 4; m_colorLoader[i] = (Color_ReadDirect_32b_8888); break;
default: _assert_(0); break;
}
- AddAttributeLoader(LoadColor, i);
+ AddAttributeLoader(LoadColor, i);
break;
case INDEX8:
m_VertexSize += 1;
@@ -212,7 +217,7 @@ void SWVertexLoader::SetFormat(u8 attributeIndex, u8 primitiveType)
case FORMAT_32B_8888: m_colorLoader[i] = (Color_ReadIndex8_32b_8888); break;
default: _assert_(0); break;
}
- AddAttributeLoader(LoadColor, i);
+ AddAttributeLoader(LoadColor, i);
break;
case INDEX16:
m_VertexSize += 2;
@@ -226,13 +231,14 @@ void SWVertexLoader::SetFormat(u8 attributeIndex, u8 primitiveType)
case FORMAT_32B_8888: m_colorLoader[i] = (Color_ReadIndex16_32b_8888); break;
default: _assert_(0); break;
}
- AddAttributeLoader(LoadColor, i);
+ AddAttributeLoader(LoadColor, i);
break;
}
}
// Texture matrix indices (remove if corresponding texture coordinate isn't enabled)
- for (int i = 0; i < 8; i++) {
+ for (int i = 0; i < 8; i++)
+ {
const int desc = tcDesc[i];
const int format = tcFormat[i];
const int elements = tcElements[i];
@@ -244,7 +250,7 @@ void SWVertexLoader::SetFormat(u8 attributeIndex, u8 primitiveType)
m_VertexSize += VertexLoader_TextCoord::GetSize(desc, format, elements);
if (m_texCoordLoader[i])
AddAttributeLoader(LoadTexCoord, i);
- }
+ }
// special case if only pos and tex coord 0 and tex coord input is AB11
m_TexGenSpecialCase =
@@ -252,80 +258,79 @@ void SWVertexLoader::SetFormat(u8 attributeIndex, u8 primitiveType)
(g_VtxDesc.Tex0Coord != NOT_PRESENT) &&
(swxfregs.texMtxInfo[0].projection == XF_TEXPROJ_ST);
-
- m_SetupUnit->Init(primitiveType);
+ m_SetupUnit->Init(primitiveType);
}
void SWVertexLoader::LoadVertex()
{
- for (int i = 0; i < m_NumAttributeLoaders; i++)
- m_AttributeLoaders[i].loader(this, &m_Vertex, m_AttributeLoaders[i].index);
+ for (int i = 0; i < m_NumAttributeLoaders; i++)
+ m_AttributeLoaders[i].loader(this, &m_Vertex, m_AttributeLoaders[i].index);
- OutputVertexData* outVertex = m_SetupUnit->GetVertex();
+ OutputVertexData* outVertex = m_SetupUnit->GetVertex();
- // transform input data
- TransformUnit::TransformPosition(&m_Vertex, outVertex);
+ // transform input data
+ TransformUnit::TransformPosition(&m_Vertex, outVertex);
- if (g_VtxDesc.Normal != NOT_PRESENT)
- {
- TransformUnit::TransformNormal(&m_Vertex, m_CurrentVat->g0.NormalElements, outVertex);
- }
+ if (g_VtxDesc.Normal != NOT_PRESENT)
+ {
+ TransformUnit::TransformNormal(&m_Vertex, m_CurrentVat->g0.NormalElements, outVertex);
+ }
- TransformUnit::TransformColor(&m_Vertex, outVertex);
+ TransformUnit::TransformColor(&m_Vertex, outVertex);
- TransformUnit::TransformTexCoord(&m_Vertex, outVertex, m_TexGenSpecialCase);
+ TransformUnit::TransformTexCoord(&m_Vertex, outVertex, m_TexGenSpecialCase);
- m_SetupUnit->SetupVertex();
+ m_SetupUnit->SetupVertex();
- INCSTAT(swstats.thisFrame.numVerticesLoaded)
+ INCSTAT(swstats.thisFrame.numVerticesLoaded)
}
void SWVertexLoader::AddAttributeLoader(AttributeLoader loader, u8 index)
{
- _assert_msg_(VIDEO, m_NumAttributeLoaders < 21, "Too many attribute loaders");
- m_AttributeLoaders[m_NumAttributeLoaders].loader = loader;
- m_AttributeLoaders[m_NumAttributeLoaders++].index = index;
+ _assert_msg_(VIDEO, m_NumAttributeLoaders < 21, "Too many attribute loaders");
+ m_AttributeLoaders[m_NumAttributeLoaders].loader = loader;
+ m_AttributeLoaders[m_NumAttributeLoaders++].index = index;
}
void SWVertexLoader::LoadPosMtx(SWVertexLoader *vertexLoader, InputVertexData *vertex, u8 unused)
{
- vertex->posMtx = DataReadU8() & 0x3f;
+ vertex->posMtx = DataReadU8() & 0x3f;
}
void SWVertexLoader::LoadTexMtx(SWVertexLoader *vertexLoader, InputVertexData *vertex, u8 index)
{
- vertex->texMtx[index] = DataReadU8() & 0x3f;
-}
+ vertex->texMtx[index] = DataReadU8() & 0x3f;
+}
void SWVertexLoader::LoadPosition(SWVertexLoader *vertexLoader, InputVertexData *vertex, u8 unused)
{
- VertexManager::s_pCurBufferPointer = (u8*)&vertex->position;
- vertexLoader->m_positionLoader();
+ VertexManager::s_pCurBufferPointer = (u8*)&vertex->position;
+ vertexLoader->m_positionLoader();
}
void SWVertexLoader::LoadNormal(SWVertexLoader *vertexLoader, InputVertexData *vertex, u8 unused)
{
VertexManager::s_pCurBufferPointer = (u8*)&vertex->normal;
- vertexLoader->m_normalLoader();
+ vertexLoader->m_normalLoader();
}
void SWVertexLoader::LoadColor(SWVertexLoader *vertexLoader, InputVertexData *vertex, u8 index)
{
- u32 color;
- VertexManager::s_pCurBufferPointer = (u8*)&color;
- colIndex = index;
- vertexLoader->m_colorLoader[index]();
+ u32 color;
+ VertexManager::s_pCurBufferPointer = (u8*)&color;
+ colIndex = index;
+ vertexLoader->m_colorLoader[index]();
- // rgba -> abgr
- *(u32*)vertex->color[index] = Common::swap32(color);
+ // rgba -> abgr
+ *(u32*)vertex->color[index] = Common::swap32(color);
}
void SWVertexLoader::LoadTexCoord(SWVertexLoader *vertexLoader, InputVertexData *vertex, u8 index)
{
- VertexManager::s_pCurBufferPointer = (u8*)&vertex->texCoords[index];
- tcIndex = index;
- vertexLoader->m_texCoordLoader[index]();
+ VertexManager::s_pCurBufferPointer = (u8*)&vertex->texCoords[index];
+ tcIndex = index;
+ vertexLoader->m_texCoordLoader[index]();
}
void SWVertexLoader::DoState(PointerWrap &p)
@@ -339,4 +344,4 @@ void SWVertexLoader::DoState(PointerWrap &p)
p.Do(m_NumAttributeLoaders);
m_SetupUnit->DoState(p);
p.Do(m_TexGenSpecialCase);
-} \ No newline at end of file
+}