[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [44298] trunk/blender: Fix #30270, #30265: cycles not displaying textured objects, and not rendering

Brecht Van Lommel brechtvanlommel at pandora.be
Tue Feb 21 15:40:07 CET 2012


Revision: 44298
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=44298
Author:   blendix
Date:     2012-02-21 14:39:59 +0000 (Tue, 21 Feb 2012)
Log Message:
-----------
Fix #30270, #30265: cycles not displaying textured objects, and not rendering
text/curve objects after the bmesh merge. Also removed a debug print.

Modified Paths:
--------------
    trunk/blender/CMakeLists.txt
    trunk/blender/source/blender/blenkernel/intern/DerivedMesh.c
    trunk/blender/source/blender/blenkernel/intern/editderivedmesh.c
    trunk/blender/source/blender/makesrna/intern/rna_object_api.c

Modified: trunk/blender/CMakeLists.txt
===================================================================
--- trunk/blender/CMakeLists.txt	2012-02-21 13:13:14 UTC (rev 44297)
+++ trunk/blender/CMakeLists.txt	2012-02-21 14:39:59 UTC (rev 44298)
@@ -254,7 +254,6 @@
 		"Choose the minimum OSX version required: 10.4 or 10.5"
 		FORCE)
 	endif()
-	MESSAGE(STATUS ${CMAKE_GENERATOR})
 	if(${CMAKE_GENERATOR} MATCHES "Xcode")
 		if(${XCODE_VERSION} VERSION_EQUAL 4 OR ${XCODE_VERSION} VERSION_GREATER 4)
 			# Xcode 4 defaults to the Apple LLVM Compiler.

Modified: trunk/blender/source/blender/blenkernel/intern/DerivedMesh.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/DerivedMesh.c	2012-02-21 13:13:14 UTC (rev 44297)
+++ trunk/blender/source/blender/blenkernel/intern/DerivedMesh.c	2012-02-21 14:39:59 UTC (rev 44298)
@@ -2628,7 +2628,7 @@
 				attribs->tface[a].array = tfdata->layers[layer].data;
 				attribs->tface[a].emOffset = tfdata->layers[layer].offset;
 				attribs->tface[a].glIndex = gattribs->layer[b].glindex;
-				/* attribs->tface[a].glTexco = gattribs->layer[b].gltexco; */ /* BMESH_TODO, trunk has this but not bmesh, need to investigate whats going on here - campbell */
+				attribs->tface[a].glTexco = gattribs->layer[b].gltexco;
 			}
 			/* BMESH ONLY, may need to get this working?, otherwise remove */
 			/* else {

Modified: trunk/blender/source/blender/blenkernel/intern/editderivedmesh.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/editderivedmesh.c	2012-02-21 13:13:14 UTC (rev 44297)
+++ trunk/blender/source/blender/blenkernel/intern/editderivedmesh.c	2012-02-21 14:39:59 UTC (rev 44298)
@@ -1129,12 +1129,18 @@
 
 #define PASSATTRIB(loop, eve, vert) {											\
 	if (attribs.totorco) {														\
-		float *orco = attribs.orco.array[BM_elem_index_get(eve)];						\
-		glVertexAttrib3fvARB(attribs.orco.glIndex, orco);						\
+		float *orco = attribs.orco.array[BM_elem_index_get(eve)];				\
+		if (attribs.orco.glTexco)												\
+			glTexCoord3fv(orco);												\
+		else																	\
+			glVertexAttrib3fvARB(attribs.orco.glIndex, orco);					\
 	}																			\
 	for (b = 0; b < attribs.tottface; b++) {									\
 		MLoopUV *_luv = CustomData_bmesh_get_n(&bm->ldata, loop->head.data, CD_MLOOPUV, b);\
-		glVertexAttrib2fvARB(attribs.tface[b].glIndex, _luv->uv);				\
+		if (attribs.tface[b].glTexco)											\
+			glTexCoord2fv(_luv->uv);											\
+		else																	\
+			glVertexAttrib2fvARB(attribs.tface[b].glIndex, _luv->uv);			\
 	}																			\
 	for (b = 0; b < attribs.totmcol; b++) {										\
 		MLoopCol *_cp = CustomData_bmesh_get_n(&bm->ldata, loop->head.data, CD_MLOOPCOL, b);\

Modified: trunk/blender/source/blender/makesrna/intern/rna_object_api.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_object_api.c	2012-02-21 13:13:14 UTC (rev 44297)
+++ trunk/blender/source/blender/makesrna/intern/rna_object_api.c	2012-02-21 14:39:59 UTC (rev 44298)
@@ -116,7 +116,7 @@
 		copycu->editnurb = NULL;
 
 		nurbs_to_mesh( tmpobj );
-		
+
 		/* nurbs_to_mesh changes the type to a mesh, check it worked */
 		if (tmpobj->type != OB_MESH) {
 			free_libblock_us( &(G.main->object), tmpobj );
@@ -239,11 +239,14 @@
 		break;
 	} /* end copy materials */
 
+	/* cycles and exporters rely on this still */
+	BKE_mesh_tessface_ensure(tmpmesh);
+
 	/* we don't assign it to anything */
 	tmpmesh->id.us--;
 	
 	/* make sure materials get updated in objects */
-	test_object_materials( ( ID * ) tmpmesh );
+	test_object_materials(&tmpmesh->id);
 
 	return tmpmesh;
 }




More information about the Bf-blender-cvs mailing list