[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [48337] branches/soc-2012-swiss_cheese/ source/gameengine/Converter/BL_BlenderDataConversion.cpp: Fix GLES mesh conversion
Alexander Kuznetsov
kuzsasha at gmail.com
Wed Jun 27 16:53:19 CEST 2012
Revision: 48337
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=48337
Author: alexk
Date: 2012-06-27 14:53:15 +0000 (Wed, 27 Jun 2012)
Log Message:
-----------
Fix GLES mesh conversion
Modified Paths:
--------------
branches/soc-2012-swiss_cheese/source/gameengine/Converter/BL_BlenderDataConversion.cpp
Modified: branches/soc-2012-swiss_cheese/source/gameengine/Converter/BL_BlenderDataConversion.cpp
===================================================================
--- branches/soc-2012-swiss_cheese/source/gameengine/Converter/BL_BlenderDataConversion.cpp 2012-06-27 14:40:43 UTC (rev 48336)
+++ branches/soc-2012-swiss_cheese/source/gameengine/Converter/BL_BlenderDataConversion.cpp 2012-06-27 14:53:15 UTC (rev 48337)
@@ -1219,18 +1219,31 @@
poly->SetTwoside(twoside);
//poly->SetEdgeCode(mface->edcode);
-#ifdef GLES
- // Looks like we need a different vertex order for GLES
- meshobj->AddVertex(poly,0,pt[2],uvs[2],tan[2],rgb[2],no[2],flat,mface->v3);
- meshobj->AddVertex(poly,1,pt[3],uvs[3],tan[3],rgb[3],no[3],flat,mface->v4);
- meshobj->AddVertex(poly,2,pt[0],uvs[0],tan[0],rgb[0],no[0],flat,mface->v1);
-#else
meshobj->AddVertex(poly,0,pt[0],uvs[0],tan[0],rgb[0],no[0],flat,mface->v1);
meshobj->AddVertex(poly,1,pt[1],uvs[1],tan[1],rgb[1],no[1],flat,mface->v2);
meshobj->AddVertex(poly,2,pt[2],uvs[2],tan[2],rgb[2],no[2],flat,mface->v3);
+#ifndef GLES
if (nverts==4)
meshobj->AddVertex(poly,3,pt[3],uvs[3],tan[3],rgb[3],no[3],flat,mface->v4);
+
+
+#else
+ if(mface->v4)
+ {
+ // GLES doesn't support QUADs so we are spliiting a quad |_| to two triangles |/|
+
+ poly = meshobj->AddPolygon(bucket, 3);
+
+ poly->SetVisible(visible);
+ poly->SetCollider(collider);
+ poly->SetTwoside(twoside);
+
+ meshobj->AddVertex(poly,0,pt[2],uvs[2],tan[2],rgb[2],no[2],flat,mface->v3);
+ meshobj->AddVertex(poly,1,pt[3],uvs[3],tan[3],rgb[3],no[3],flat,mface->v4);
+ meshobj->AddVertex(poly,2,pt[0],uvs[0],tan[0],rgb[0],no[0],flat,mface->v1);
+
+ }
#endif
}
@@ -1600,18 +1613,30 @@
poly->SetTwoside(twoside);
//poly->SetEdgeCode(mface->edcode);
-#ifdef GLES
- // Looks like we need a different vertex order for GLES
- meshobj->AddVertex(poly,0,pt[2],uvs[2],tan[2],rgb2,no[2],flat,mface->v3);
- meshobj->AddVertex(poly,1,pt[3],uvs[3],tan[3],rgb3,no[3],flat,mface->v4);
- meshobj->AddVertex(poly,2,pt[0],uvs[0],tan[0],rgb0,no[0],flat,mface->v1);
-#else
meshobj->AddVertex(poly,0,pt[0],uvs[0],tan[0],rgb0,no[0],flat,mface->v1);
meshobj->AddVertex(poly,1,pt[1],uvs[1],tan[1],rgb1,no[1],flat,mface->v2);
meshobj->AddVertex(poly,2,pt[2],uvs[2],tan[2],rgb2,no[2],flat,mface->v3);
+
+#ifndef GLES
if (nverts==4)
meshobj->AddVertex(poly,3,pt[3],uvs[3],tan[3],rgb3,no[3],flat,mface->v4);
+#else
+ if(mface->v4)
+ {
+ // GLES doesn't support QUADs so we are spliiting a quad |_| to two triangles |/|
+
+ poly = meshobj->AddPolygon(bucket, 3);
+
+ poly->SetVisible(visible);
+ poly->SetCollider(collider);
+ poly->SetTwoside(twoside);
+
+ meshobj->AddVertex(poly,0,pt[2],uvs[2],tan[2],rgb2,no[2],flat,mface->v3);
+ meshobj->AddVertex(poly,1,pt[3],uvs[3],tan[3],rgb3,no[3],flat,mface->v4);
+ meshobj->AddVertex(poly,2,pt[0],uvs[0],tan[0],rgb0,no[0],flat,mface->v1);
+
+ }
#endif
}
More information about the Bf-blender-cvs
mailing list