aboutsummaryrefslogtreecommitdiffstats
path: root/Samples/CommonSrc/Render/Render_XmlSceneLoader.cpp
diff options
context:
space:
mode:
authorBrad Davis <[email protected]>2013-10-10 23:31:48 -0700
committerBrad Davis <[email protected]>2013-10-10 23:31:48 -0700
commitcf0441a1dc790d6fdca7400a7db7a939c2fa6000 (patch)
treeedaf4e78195d789b1e3b724328951324db085324 /Samples/CommonSrc/Render/Render_XmlSceneLoader.cpp
parentabfcde20cd83aa36e83186a0745425bcdead6144 (diff)
Adding Linux 0.2.5 changes
Diffstat (limited to 'Samples/CommonSrc/Render/Render_XmlSceneLoader.cpp')
-rw-r--r--Samples/CommonSrc/Render/Render_XmlSceneLoader.cpp22
1 files changed, 16 insertions, 6 deletions
diff --git a/Samples/CommonSrc/Render/Render_XmlSceneLoader.cpp b/Samples/CommonSrc/Render/Render_XmlSceneLoader.cpp
index a871f35..b2b1ac1 100644
--- a/Samples/CommonSrc/Render/Render_XmlSceneLoader.cpp
+++ b/Samples/CommonSrc/Render/Render_XmlSceneLoader.cpp
@@ -239,15 +239,13 @@ bool XmlHandler::ReadFile(const char* fileName, OVR::Render::RenderDevice* pRend
FirstChild()->ToText()->Value();
UPInt stringLength = strlen(indexStr);
- for(UPInt j = 0; j < stringLength;)
+ for(UPInt j = 0; j < stringLength; )
{
UPInt k = j + 1;
for(; k < stringLength; ++k)
{
- if(indexStr[k] == ' ')
- {
- break;
- }
+ if (indexStr[k] == ' ')
+ break;
}
char text[20];
for(UPInt l = 0; l < k - j; ++l)
@@ -255,10 +253,22 @@ bool XmlHandler::ReadFile(const char* fileName, OVR::Render::RenderDevice* pRend
text[l] = indexStr[j + l];
}
text[k - j] = '\0';
- Models[i]->Indices.InsertAt(0, (unsigned short)atoi(text));
+
+ Models[i]->Indices.PushBack((unsigned short)atoi(text));
j = k + 1;
}
+ // Reverse index order to match original expected orientation
+ Array<UInt16>& indices = Models[i]->Indices;
+ UPInt indexCount = indices.GetSize();
+
+ for (UPInt revIndex = 0; revIndex < indexCount/2; revIndex++)
+ {
+ unsigned short itemp = indices[revIndex];
+ indices[revIndex] = indices[indexCount - revIndex - 1];
+ indices[indexCount - revIndex - 1] = itemp;
+ }
+
delete vertices;
delete normals;
delete diffuseUVs;