[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [22780] branches/soc-2009-jaguarandi/ source/blender/render/intern: *Changed RayObject_ calls to RE_rayobject to keep consistency on calls

Andre Susano Pinto andresusanopinto at gmail.com
Tue Aug 25 22:26:50 CEST 2009


Revision: 22780
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=22780
Author:   jaguarandi
Date:     2009-08-25 22:26:50 +0200 (Tue, 25 Aug 2009)

Log Message:
-----------
*Changed RayObject_ calls to RE_rayobject to keep consistency on calls
*Moved part of counters code to a separated file (rayobject_raycounter.c)

Modified Paths:
--------------
    branches/soc-2009-jaguarandi/source/blender/render/intern/include/rayobject.h
    branches/soc-2009-jaguarandi/source/blender/render/intern/raytrace/bvh.h
    branches/soc-2009-jaguarandi/source/blender/render/intern/raytrace/rayobject_bih.cpp
    branches/soc-2009-jaguarandi/source/blender/render/intern/raytrace/rayobject_bvh.cpp
    branches/soc-2009-jaguarandi/source/blender/render/intern/raytrace/rayobject_vbvh.cpp
    branches/soc-2009-jaguarandi/source/blender/render/intern/raytrace/reorganize.h
    branches/soc-2009-jaguarandi/source/blender/render/intern/source/rayobject.c
    branches/soc-2009-jaguarandi/source/blender/render/intern/source/rayobject_blibvh.c
    branches/soc-2009-jaguarandi/source/blender/render/intern/source/rayobject_instance.c
    branches/soc-2009-jaguarandi/source/blender/render/intern/source/rayobject_octree.c
    branches/soc-2009-jaguarandi/source/blender/render/intern/source/rayshade.c

Added Paths:
-----------
    branches/soc-2009-jaguarandi/source/blender/render/intern/source/rayobject_raycounter.c

Modified: branches/soc-2009-jaguarandi/source/blender/render/intern/include/rayobject.h
===================================================================
--- branches/soc-2009-jaguarandi/source/blender/render/intern/include/rayobject.h	2009-08-25 20:23:42 UTC (rev 22779)
+++ branches/soc-2009-jaguarandi/source/blender/render/intern/include/rayobject.h	2009-08-25 20:26:50 UTC (rev 22780)
@@ -77,40 +77,17 @@
 	described on RE_raytrace.h
  */
 
-/* defines where coordinates of rayface primitives are stored */
-#define RE_RAYFACE_COORDS_LOCAL
-
-//(ATM this won't work good with all types of instances)
-//#define RE_RAYFACE_COORDS_POINTER
-//#define RE_RAYFACE_COORDS_VLAKREN
- 
 typedef struct RayFace
 {
-#ifdef RE_RAYFACE_COORDS_LOCAL
 	float v1[4], v2[4], v3[4], v4[3];
 	int quad;
 	void *ob;
 	void *face;
-#elif defined(RE_RAYFACE_COORDS_POINTER)
-	float *v1, *v2, *v3, *v4;
-	void *ob;
-	void *face;
-#elif defined(RE_RAYFACE_COORDS_VLAKREN)
-	void *ob;
-	void *face;
-#endif
 	
 } RayFace;
 
-#ifdef RE_RAYFACE_COORDS_LOCAL
-#	define RE_rayface_isQuad(a) ((a)->quad)
-#elif defined(RE_RAYFACE_COORDS_POINTER)
-#	define RE_rayface_isQuad(a) ((a)->v4)
-#elif defined(RE_RAYFACE_COORDS_VLAKREN)
-#	define RE_rayface_isQuad(a) ((((VlakRen*)((a)->face))->v4) != NULL)
-#endif
+#define RE_rayface_isQuad(a) ((a)->quad)
 
-
 struct RayObject
 {
 	struct RayObjectAPI *api;
@@ -137,13 +114,13 @@
 	
 } RayObjectAPI;
 
-#define RayObject_align(o)				((RayObject*)(((intptr_t)o)&(~3)))
-#define RayObject_unalignRayFace(o)		((RayObject*)(((intptr_t)o)|1))
-#define RayObject_unalignRayAPI(o)		((RayObject*)(((intptr_t)o)|2))
+#define RE_rayobject_align(o)				((RayObject*)(((intptr_t)o)&(~3)))
+#define RE_rayobject_unalignRayFace(o)		((RayObject*)(((intptr_t)o)|1))
+#define RE_rayobject_unalignRayAPI(o)		((RayObject*)(((intptr_t)o)|2))
 
-#define RayObject_isAligned(o)	((((intptr_t)o)&3) == 0)
-#define RayObject_isRayFace(o)	((((intptr_t)o)&3) == 1)
-#define RayObject_isRayAPI(o)	((((intptr_t)o)&3) == 2)
+#define RE_rayobject_isAligned(o)	((((intptr_t)o)&3) == 0)
+#define RE_rayobject_isRayFace(o)	((((intptr_t)o)&3) == 1)
+#define RE_rayobject_isRayAPI(o)	((((intptr_t)o)&3) == 2)
 
 /*
  * Loads a VlakRen on a RayFace

Modified: branches/soc-2009-jaguarandi/source/blender/render/intern/raytrace/bvh.h
===================================================================
--- branches/soc-2009-jaguarandi/source/blender/render/intern/raytrace/bvh.h	2009-08-25 20:23:42 UTC (rev 22779)
+++ branches/soc-2009-jaguarandi/source/blender/render/intern/raytrace/bvh.h	2009-08-25 20:26:50 UTC (rev 22780)
@@ -59,7 +59,7 @@
 template<class Node>
 inline bool is_leaf(Node *node)
 {
-	return !RayObject_isAligned(node);
+	return !RE_rayobject_isAligned(node);
 }
 
 template<class Tree> static void bvh_done(Tree *obj);

Modified: branches/soc-2009-jaguarandi/source/blender/render/intern/raytrace/rayobject_bih.cpp
===================================================================
--- branches/soc-2009-jaguarandi/source/blender/render/intern/raytrace/rayobject_bih.cpp	2009-08-25 20:23:42 UTC (rev 22779)
+++ branches/soc-2009-jaguarandi/source/blender/render/intern/raytrace/rayobject_bih.cpp	2009-08-25 20:26:50 UTC (rev 22780)
@@ -78,7 +78,7 @@
 RayObject *RE_rayobject_bih_create(int size)
 {
 	BIHTree *obj= (BIHTree*)MEM_callocN(sizeof(BIHTree), "BIHTree");
-	assert( RayObject_isAligned(obj) ); /* RayObject API assumes real data to be 4-byte aligned */	
+	assert( RE_rayobject_isAligned(obj) ); /* RayObject API assumes real data to be 4-byte aligned */	
 	
 	obj->rayobj.api = &bih_api;
 	obj->root = NULL;
@@ -86,7 +86,7 @@
 	obj->node_alloc = obj->node_next = NULL;
 	obj->builder    = rtbuild_create( size );
 	
-	return RayObject_unalignRayAPI((RayObject*) obj);
+	return RE_rayobject_unalignRayAPI((RayObject*) obj);
 }
 
 static void bih_free(BIHTree *obj)
@@ -128,7 +128,7 @@
 
 		if(t1 <= t2)
 		{
-				if(RayObject_isAligned(node->child[i]))
+				if(RE_rayobject_isAligned(node->child[i]))
 				{
 					if(node->child[i] == 0) break;
 					
@@ -151,7 +151,7 @@
 
 static int bih_intersect(BIHTree *obj, Isect *isec)
 {
-	if(RayObject_isAligned(obj->root))
+	if(RE_rayobject_isAligned(obj->root))
 		return dfs_raycast(obj->root, isec, 0, isec->labda);
 	else
 		return RE_rayobject_intersect( (RayObject*)obj->root, isec);
@@ -169,7 +169,7 @@
 static BIHNode *bih_new_node(BIHTree *tree, int nid)
 {
 	BIHNode *node = tree->node_alloc + nid - 1;
-	assert(RayObject_isAligned(node));
+	assert(RE_rayobject_isAligned(node));
 	if(node+1 > tree->node_next)
 		tree->node_next = node+1;
 		
@@ -187,7 +187,7 @@
 	if(rtbuild_size(builder) == 1)
 	{
 		RayObject *child = rtbuild_get_primitive( builder, 0 );
-		assert(!RayObject_isAligned(child));
+		assert(!RE_rayobject_isAligned(child));
 
 		INIT_MINMAX(bb, bb+3);
 		RE_rayobject_merge_bb( (RayObject*)child, bb, bb+3);

Modified: branches/soc-2009-jaguarandi/source/blender/render/intern/raytrace/rayobject_bvh.cpp
===================================================================
--- branches/soc-2009-jaguarandi/source/blender/render/intern/raytrace/rayobject_bvh.cpp	2009-08-25 20:23:42 UTC (rev 22779)
+++ branches/soc-2009-jaguarandi/source/blender/render/intern/raytrace/rayobject_bvh.cpp	2009-08-25 20:26:50 UTC (rev 22780)
@@ -117,7 +117,7 @@
 	{
 		RayObject *child = rtbuild_get_primitive( builder, 0 );
 
-		if(RayObject_isRayFace(child))
+		if(RE_rayobject_isRayFace(child))
 		{
 			int i;
 			BVHNode *parent = bvh_new_node(tree, nid);
@@ -138,7 +138,7 @@
 		}
 		else
 		{
-			assert(!RayObject_isAligned(child));
+			assert(!RE_rayobject_isAligned(child));
 			//Its a sub-raytrace structure, assume it has it own raycast
 			//methods and adding a Bounding Box arround is unnecessary
 
@@ -200,7 +200,7 @@
 template<>
 int bvh_intersect<BVHTree>(BVHTree *obj, Isect* isec)
 {
-	if(RayObject_isAligned(obj->root))
+	if(RE_rayobject_isAligned(obj->root))
 		return bvh_node_stack_raycast<BVHNode,64,true>(obj->root, isec);
 	else
 		return RE_rayobject_intersect( (RayObject*) obj->root, isec );
@@ -222,7 +222,7 @@
 RayObject *RE_rayobject_bvh_create(int size)
 {
 	BVHTree *obj= (BVHTree*)MEM_callocN(sizeof(BVHTree), "BVHTree");
-	assert( RayObject_isAligned(obj) ); /* RayObject API assumes real data to be 4-byte aligned */	
+	assert( RE_rayobject_isAligned(obj) ); /* RayObject API assumes real data to be 4-byte aligned */	
 	
 	obj->rayobj.api = &bvh_api;
 	obj->root = NULL;
@@ -230,5 +230,5 @@
 	obj->node_arena = NULL;
 	obj->builder    = rtbuild_create( size );
 	
-	return RayObject_unalignRayAPI((RayObject*) obj);
+	return RE_rayobject_unalignRayAPI((RayObject*) obj);
 }

Modified: branches/soc-2009-jaguarandi/source/blender/render/intern/raytrace/rayobject_vbvh.cpp
===================================================================
--- branches/soc-2009-jaguarandi/source/blender/render/intern/raytrace/rayobject_vbvh.cpp	2009-08-25 20:23:42 UTC (rev 22779)
+++ branches/soc-2009-jaguarandi/source/blender/render/intern/raytrace/rayobject_vbvh.cpp	2009-08-25 20:26:50 UTC (rev 22780)
@@ -181,7 +181,7 @@
 #ifdef DYNAMIC_ALLOC_BB
 	node->bb = (float*)BLI_memarena_alloc(tree->node_arena, 6*sizeof(float));
 #endif
-	assert(RayObject_isAligned(node));
+	assert(RE_rayobject_isAligned(node));
 	return node;
 }
 
@@ -319,7 +319,7 @@
 		for(int i=0; i<lcts->size; i++)
 		{
 			VBVHNode *node = (VBVHNode*)lcts->stack[i];
-			if(RayObject_isAligned(node))
+			if(RE_rayobject_isAligned(node))
 				hit |= bvh_node_stack_raycast<VBVHNode,StackSize,true>(node, isec);
 			else
 				hit |= RE_rayobject_intersect( (RayObject*)node, isec );
@@ -333,7 +333,7 @@
 	else
 */
 	{
-		if(RayObject_isAligned(obj->root))
+		if(RE_rayobject_isAligned(obj->root))
 			return bvh_node_stack_raycast<SVBVHNode,StackSize,false>( obj->root, isec);
 		else
 			return RE_rayobject_intersect( (RayObject*) obj->root, isec );
@@ -346,7 +346,7 @@
 template<class Node,class HintObject>
 void bvh_dfs_make_hint_push_siblings(Node *node, LCTSHint *hint, int reserve_space, HintObject *hintObject)
 {
-	if(!RayObject_isAligned(node))
+	if(!RE_rayobject_isAligned(node))
 		hint->stack[hint->size++] = (RayObject*)node;
 	else
 	{
@@ -459,7 +459,7 @@
 RayObject *RE_rayobject_vbvh_create(int size)
 {
 	VBVHTree *obj= (VBVHTree*)MEM_callocN(sizeof(VBVHTree), "VBVHTree");
-	assert( RayObject_isAligned(obj) ); /* RayObject API assumes real data to be 4-byte aligned */	
+	assert( RE_rayobject_isAligned(obj) ); /* RayObject API assumes real data to be 4-byte aligned */	
 	
 	obj->rayobj.api = get_api<VBVHTree>(DFS_STACK_SIZE);
 	obj->root = NULL;
@@ -467,7 +467,7 @@
 	obj->node_arena = NULL;
 	obj->builder    = rtbuild_create( size );
 	
-	return RayObject_unalignRayAPI((RayObject*) obj);
+	return RE_rayobject_unalignRayAPI((RayObject*) obj);
 }
 
 
@@ -482,7 +482,7 @@
 RayObject *RE_rayobject_svbvh_create(int size)
 {
 	SVBVHTree *obj= (SVBVHTree*)MEM_callocN(sizeof(SVBVHTree), "SVBVHTree");
-	assert( RayObject_isAligned(obj) ); // RayObject API assumes real data to be 4-byte aligned
+	assert( RE_rayobject_isAligned(obj) ); // RayObject API assumes real data to be 4-byte aligned
 	
 	obj->rayobj.api = get_api<SVBVHTree>(DFS_STACK_SIZE);
 	obj->root = NULL;
@@ -490,6 +490,6 @@
 	obj->node_arena = NULL;
 	obj->builder    = rtbuild_create( size );
 	
-	return RayObject_unalignRayAPI((RayObject*) obj);
+	return RE_rayobject_unalignRayAPI((RayObject*) obj);
 }
 */
\ No newline at end of file

Modified: branches/soc-2009-jaguarandi/source/blender/render/intern/raytrace/reorganize.h
===================================================================
--- branches/soc-2009-jaguarandi/source/blender/render/intern/raytrace/reorganize.h	2009-08-25 20:23:42 UTC (rev 22779)
+++ branches/soc-2009-jaguarandi/source/blender/render/intern/raytrace/reorganize.h	2009-08-25 20:26:50 UTC (rev 22780)
@@ -47,7 +47,7 @@
 		q.pop();
 		
 		if(parent == node) continue;
-		if(node_fits_inside(node, parent) && RayObject_isAligned(parent->child) )
+		if(node_fits_inside(node, parent) && RE_rayobject_isAligned(parent->child) )
 		{
 			float pcost = bb_area(parent->bb, parent->bb+3);
 			cost = std::min( cost, std::make_pair(pcost,parent) );
@@ -69,11 +69,11 @@
 		Node * node = q.front();
 		q.pop();
 		
-		if( RayObject_isAligned(node->child) )
+		if( RE_rayobject_isAligned(node->child) )
 		{
 			for(Node **prev = &node->child; *prev; )
 			{
-				assert( RayObject_isAligned(*prev) ); 

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list