[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