[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