Revision: 14943
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=14943
Author:   unclezeiv
Date:     2008-05-23 19:19:45 +0200 (Fri, 23 May 2008)

Log Message:
-----------
Reverting light iteration functions and types (added in rev. 14672); will be 
replaced by a different scheme.

Modified Paths:
--------------
    branches/soc-2008-unclezeiv/source/blender/render/intern/include/lightcuts.h
    
branches/soc-2008-unclezeiv/source/blender/render/intern/include/rendercore.h
    branches/soc-2008-unclezeiv/source/blender/render/intern/source/lightcuts.c
    
branches/soc-2008-unclezeiv/source/blender/render/intern/source/pixelshading.c
    branches/soc-2008-unclezeiv/source/blender/render/intern/source/rendercore.c
    
branches/soc-2008-unclezeiv/source/blender/render/intern/source/shadeoutput.c

Modified: 
branches/soc-2008-unclezeiv/source/blender/render/intern/include/lightcuts.h
===================================================================
--- 
branches/soc-2008-unclezeiv/source/blender/render/intern/include/lightcuts.h    
    2008-05-23 16:31:02 UTC (rev 14942)
+++ 
branches/soc-2008-unclezeiv/source/blender/render/intern/include/lightcuts.h    
    2008-05-23 17:19:45 UTC (rev 14943)
@@ -33,6 +33,4 @@
 
 void lightcuts_create_point_lights(Render * re);
 
-LampRen* lightcuts_iter_lights(LampIterData ** lida);
-
 #endif /*LIGHTCUTS_H_*/

Modified: 
branches/soc-2008-unclezeiv/source/blender/render/intern/include/rendercore.h
===================================================================
--- 
branches/soc-2008-unclezeiv/source/blender/render/intern/include/rendercore.h   
    2008-05-23 16:31:02 UTC (rev 14942)
+++ 
branches/soc-2008-unclezeiv/source/blender/render/intern/include/rendercore.h   
    2008-05-23 17:19:45 UTC (rev 14943)
@@ -90,14 +90,7 @@
 
 int get_sample_layers(struct RenderPart *pa, struct RenderLayer *rl, struct 
RenderLayer **rlpp);
 
-/* ------------------------------------------------------------------------- */
 
-typedef struct LampIterData LampIterData;
-typedef LampRen* (*LightIter)(LampIterData **);
-
-LampIterData * light_iter_init();
-LightIter light_get_iter();
-
 /* -------- ray.c ------- */
 
 extern void freeraytree(Render *re);

Modified: 
branches/soc-2008-unclezeiv/source/blender/render/intern/source/lightcuts.c
===================================================================
--- branches/soc-2008-unclezeiv/source/blender/render/intern/source/lightcuts.c 
2008-05-23 16:31:02 UTC (rev 14942)
+++ branches/soc-2008-unclezeiv/source/blender/render/intern/source/lightcuts.c 
2008-05-23 17:19:45 UTC (rev 14943)
@@ -384,27 +384,3 @@
                lightcuts_build_tree();
        }
 }
-
-/*
- * proof-of-concept functionality:
- * skip lights randomly while iterating
- */
-LampRen* lightcuts_iter_lights(LampIterData ** lida)
-{
-       GroupObject * go;
-       int skip = BLI_rand() % 3;
-       
-       if (!lida || !(*lida))
-               return NULL;
-               
-       for (go = ((GroupObject *)(*lida))->next; go; go=go->next)
-       {
-               if (go->lampren && (--skip) < 0)
-               {
-                       *lida = (LampIterData*)(go);
-                       return go->lampren;
-               }
-       }
-       
-       return NULL;    
-}

Modified: 
branches/soc-2008-unclezeiv/source/blender/render/intern/source/pixelshading.c
===================================================================
--- 
branches/soc-2008-unclezeiv/source/blender/render/intern/source/pixelshading.c  
    2008-05-23 16:31:02 UTC (rev 14942)
+++ 
branches/soc-2008-unclezeiv/source/blender/render/intern/source/pixelshading.c  
    2008-05-23 17:19:45 UTC (rev 14943)
@@ -69,8 +69,7 @@
 
 static void render_lighting_halo(HaloRen *har, float *colf)
 {
-       LampIterData *liter;
-       LightIter light_iter;
+       GroupObject *go;
        LampRen *lar;
        float i, inp, inpr, rco[3], dco[3], lv[3], lampdist, ld, t, *vn;
        float ir, ig, ib, shadfac, soft, lacol[3];
@@ -82,9 +81,8 @@
        
        vn= har->no;
        
-       liter = light_iter_init();
-       light_iter = light_get_iter();
-       while((lar=light_iter(&liter))) {
+       for(go=R.lights.first; go; go= go->next) {
+               lar= go->lampren;
                
                /* test for lamplayer */
                if(lar->mode & LA_LAYER) if((lar->lay & har->lay)==0) continue;

Modified: 
branches/soc-2008-unclezeiv/source/blender/render/intern/source/rendercore.c
===================================================================
--- 
branches/soc-2008-unclezeiv/source/blender/render/intern/source/rendercore.c    
    2008-05-23 16:31:02 UTC (rev 14942)
+++ 
branches/soc-2008-unclezeiv/source/blender/render/intern/source/rendercore.c    
    2008-05-23 17:19:45 UTC (rev 14943)
@@ -43,7 +43,6 @@
 
 #include "BKE_utildefines.h"
 
-#include "DNA_group_types.h"
 #include "DNA_image_types.h"
 #include "DNA_lamp_types.h"
 #include "DNA_material_types.h"
@@ -59,7 +58,6 @@
 #include "IMB_imbuf.h"
 
 /* local include */
-#include "lightcuts.h"
 #include "renderpipeline.h"
 #include "render_types.h"
 #include "renderdatabase.h"
@@ -2588,47 +2586,3 @@
        return R.bakebuf;
 }
 
-/*
- * lamp iterators: when looping through lamps, you need to initialize iteration
- * data first, then get an iterator function, and retrieve each light through
- * the iterator. E.g.:
- *    lid = light_iter_init();
- *    iter = light_get_iter();
- *    while ((lamp=iter(&lid))
- *    { ...per lamp operations...}
- * This is mainly needed for lightcuts (see lightcuts.c)
- */
-LampIterData * light_iter_init()
-{
-       if (R.r.mode & R_LIGHTCUTS)
-               return (LampIterData *)(R.pointlights.first);
-       return (LampIterData *)(R.lights.first);
-}
-
-/* default iterator: loops through groupobjects as usual */
-static LampRen* default_light_iter(LampIterData ** prev)
-{
-       GroupObject * go;
-       
-       if (!prev || !(*prev))
-               return NULL;
-               
-       for (go = ((GroupObject *)(*prev))->next; go; go=go->next)
-       {
-               if (go->lampren)
-               {
-                       *prev = (LampIterData*)(go);
-                       return go->lampren;
-               }
-       }
-       
-       return NULL;    
-}
-
-LightIter light_get_iter()
-{
-       if (R.r.mode & R_LIGHTCUTS)
-               return lightcuts_iter_lights;
-       return default_light_iter;
-}
-

Modified: 
branches/soc-2008-unclezeiv/source/blender/render/intern/source/shadeoutput.c
===================================================================
--- 
branches/soc-2008-unclezeiv/source/blender/render/intern/source/shadeoutput.c   
    2008-05-23 16:31:02 UTC (rev 14942)
+++ 
branches/soc-2008-unclezeiv/source/blender/render/intern/source/shadeoutput.c   
    2008-05-23 17:19:45 UTC (rev 14943)
@@ -65,17 +65,10 @@
                return &shi->light_override->gobject;
        else if(shi->mat && shi->mat->group)
                return &shi->mat->group->gobject;
-       else if(R.r.mode & R_LIGHTCUTS)
-               return &R.pointlights;
        else
                return &R.lights;
 }
 
-static LampIterData * light_iter_init_shadeoutput(ShadeInput *shi)
-{
-       return (LampIterData *)get_lights(shi);
-}
-
 #if 0
 static void fogcolor(float *colf, float *rco, float *view)
 {
@@ -347,17 +340,18 @@
 
 void renderspothalo(ShadeInput *shi, float *col, float alpha)
 {
-       LampIterData *liter;
-       LightIter light_iter;
+       ListBase *lights;
+       GroupObject *go;
        LampRen *lar;
        float i;
        
        if(alpha==0.0f) return;
        
-       liter = light_iter_init_shadeoutput(shi);
-       light_iter = light_get_iter();
-       while((lar=light_iter(&liter)))
-       {
+       lights= get_lights(shi);
+       for(go=lights->first; go; go= go->next) {
+               lar= go->lampren;
+               if(lar==NULL) continue;
+               
                if(lar->type==LA_SPOT && (lar->mode & LA_HALO) && lar->haint>0) 
{
                        
                        if(lar->mode & LA_LAYER) 
@@ -1451,9 +1445,9 @@
 {
        
        if(R.r.mode & R_SHADOW) {
-               LampIterData *liter;
-               LightIter light_iter;
+               ListBase *lights;
                LampRen *lar;
+               GroupObject *go;
                float inpr, lv[3];
                float *vn, *view, shadfac[4];
                float ir, accum, visifac, lampdist;
@@ -1462,10 +1456,11 @@
                view= shi->view;
 
                accum= ir= 0.0f;
-
-               liter = light_iter_init_shadeoutput(shi);
-               light_iter = light_get_iter();
-               while((lar=light_iter(&liter))) {
+               
+               lights= get_lights(shi);
+               for(go=lights->first; go; go= go->next) {
+                       lar= go->lampren;
+                       if(lar==NULL) continue;
                        
                        /* yafray: ignore shading by photonlights, not used in 
Blender */
                        if (lar->type==LA_YF_PHOTON) continue;
@@ -1614,13 +1609,15 @@
        
        /* lighting pass */
        if(passflag & 
(SCE_PASS_COMBINED|SCE_PASS_DIFFUSE|SCE_PASS_SPEC|SCE_PASS_SHADOW)) {
-               LampIterData *liter;
-               LightIter light_iter;
+               GroupObject *go;
+               ListBase *lights;
                LampRen *lar;
                
-               liter = light_iter_init_shadeoutput(shi);
-               light_iter = light_get_iter();
-               while((lar=light_iter(&liter))) {
+               lights= get_lights(shi);
+               for(go=lights->first; go; go= go->next) {
+                       lar= go->lampren;
+                       if(lar==NULL) continue;
+                       
                        /* yafray: ignore shading by photonlights, not used in 
Blender */
                        if (lar->type==LA_YF_PHOTON) continue;
                        


_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to