svn merge -r 22571:22800 https://svn.blender.org/svnroot/bf-blender/trunk/blender
[blender-staging.git] / source / blender / render / intern / include / render_types.h
index e50e498228d6ed82c735393afc7442698e09edf5..67c692592133e25840102a7bfd314814e893f837 100644 (file)
@@ -53,6 +53,8 @@ struct VlakTableNode;
 struct GHash;
 struct RenderBuckets;
 struct ObjectInstanceRen;
+struct RayObject;
+struct RayFace;
 
 #define TABLEINITSIZE 1024
 #define LAMPINITSIZE 256
@@ -168,7 +170,9 @@ struct Render
        ListBase parts;
        
        /* octree tables and variables for raytrace */
-       void *raytree;
+       struct RayObject *raytree;
+       struct RayFace *rayfaces;
+       float maxdist; /* needed for keeping an incorrect behaviour of SUN and HEMI lights (avoid breaking old scenes) */
 
        /* occlusion tree */
        void *occlusiontree;
@@ -281,6 +285,12 @@ typedef struct ObjectRen {
        int  actmtface, actmcol, bakemtface;
 
        float obmat[4][4];      /* only used in convertblender.c, for instancing */
+
+       /* used on makeraytree */
+       struct RayObject *raytree;
+       struct RayFace *rayfaces;
+       struct ObjectInstanceRen *rayobi;
+       
 } ObjectRen;
 
 typedef struct ObjectInstanceRen {
@@ -300,6 +310,10 @@ typedef struct ObjectInstanceRen {
        
        float *vectors;
        int totvector;
+       
+       /* used on makeraytree */
+       struct RayObject *raytree;
+
 } ObjectInstanceRen;
 
 /* ------------------------------------------------------------------------- */
@@ -425,7 +439,7 @@ typedef struct MatInside {
 typedef struct VolPrecachePart
 {
        struct VolPrecachePart *next, *prev;
-       struct RayTree *tree;
+       struct RayObject *tree;
        struct ShadeInput *shi;
        struct ObjectInstanceRen *obi;
        int num;
@@ -536,8 +550,7 @@ typedef struct LampRen {
        short YF_glowtype;
        
        /* ray optim */
-       VlakRen *vlr_last[BLENDER_MAX_THREADS];
-       ObjectInstanceRen *obi_last[BLENDER_MAX_THREADS];
+       struct RayObject *last_hit[BLENDER_MAX_THREADS];
        
        struct MTex *mtex[MAX_MTEX];