Revision: 20838
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=20838
Author:   yukishiro
Date:     2009-06-12 21:07:57 +0200 (Fri, 12 Jun 2009)

Log Message:
-----------
started adding light env rna

Modified Paths:
--------------
    branches/soc-2009-yukishiro/release/datafiles/blenderbuttons
    branches/soc-2009-yukishiro/release/ui/buttons_light.py
    branches/soc-2009-yukishiro/source/blender/blenkernel/BKE_lightenv.h
    branches/soc-2009-yukishiro/source/blender/blenkernel/intern/lightenv.c
    branches/soc-2009-yukishiro/source/blender/editors/include/UI_resources.h
    
branches/soc-2009-yukishiro/source/blender/editors/sculpt_paint/paint_light.c
    
branches/soc-2009-yukishiro/source/blender/editors/space_buttons/buttons_context.c
    
branches/soc-2009-yukishiro/source/blender/editors/space_buttons/buttons_header.c
    
branches/soc-2009-yukishiro/source/blender/editors/space_buttons/space_buttons.c
    branches/soc-2009-yukishiro/source/blender/editors/space_view3d/drawobject.c
    branches/soc-2009-yukishiro/source/blender/makesdna/DNA_space_types.h
    branches/soc-2009-yukishiro/source/blender/makesrna/RNA_access.h
    branches/soc-2009-yukishiro/source/blender/makesrna/intern/makesrna.c
    branches/soc-2009-yukishiro/source/blender/makesrna/intern/rna_internal.h
    branches/soc-2009-yukishiro/source/blender/windowmanager/WM_types.h

Added Paths:
-----------
    branches/soc-2009-yukishiro/source/blender/makesrna/intern/rna_lightenv.c

Modified: branches/soc-2009-yukishiro/release/datafiles/blenderbuttons
===================================================================
(Binary files differ)

Modified: branches/soc-2009-yukishiro/release/ui/buttons_light.py
===================================================================
--- branches/soc-2009-yukishiro/release/ui/buttons_light.py     2009-06-12 
17:18:59 UTC (rev 20837)
+++ branches/soc-2009-yukishiro/release/ui/buttons_light.py     2009-06-12 
19:07:57 UTC (rev 20838)
@@ -4,8 +4,23 @@
 class LightButtonsPanel(bpy.types.Panel):
        __space_type__ = "BUTTONS_WINDOW"
        __region_type__ = "WINDOW"
-       __context__ = "light"
+       __context__ = "lightenv"
 
+
+class LIGHT_PT_preview(LightButtonsPanel):
+       __idname__= "LIGHT_PT_preview"
+       __label__ = "Preview"
+
+       def poll(self, context):
+               return context.lightenv
+
+       def draw(self, context):
+               layout = self.layout
+
+                lightenv = context.lightenv
+               layout.template_preview(lightenv)
+
+
 class LIGHT_PT_type(LightButtonsPanel):
        __idname__= "LIGHT_PT_type"
        __label__ = "Light Environment Type"
@@ -13,4 +28,5 @@
        def draw(self, context):
                layout = self.layout
 
+bpy.types.register(LIGHT_PT_preview)
 bpy.types.register(LIGHT_PT_type)

Modified: branches/soc-2009-yukishiro/source/blender/blenkernel/BKE_lightenv.h
===================================================================
--- branches/soc-2009-yukishiro/source/blender/blenkernel/BKE_lightenv.h        
2009-06-12 17:18:59 UTC (rev 20837)
+++ branches/soc-2009-yukishiro/source/blender/blenkernel/BKE_lightenv.h        
2009-06-12 19:07:57 UTC (rev 20838)
@@ -40,12 +40,10 @@
 
 void init_def_lightenv(void);
 void free_lightenv(struct LightEnv *env); 
-LightEnv* add_lightenv(char *name);
+void add_lightenv(struct Scene *scene, char *name);
 
 void load_probe_image(struct LightEnv *env, char *image_name);
 
-LightEnv* get_scene_lightenv(struct Scene *scene);
-
 #ifdef __cplusplus
 }
 #endif

Modified: 
branches/soc-2009-yukishiro/source/blender/blenkernel/intern/lightenv.c
===================================================================
--- branches/soc-2009-yukishiro/source/blender/blenkernel/intern/lightenv.c     
2009-06-12 17:18:59 UTC (rev 20837)
+++ branches/soc-2009-yukishiro/source/blender/blenkernel/intern/lightenv.c     
2009-06-12 19:07:57 UTC (rev 20838)
@@ -94,7 +94,7 @@
 }
 
 
-LightEnv* add_lightenv(char *name)
+void add_lightenv(Scene *scene, char *name)
 {
         LightEnv *env;
 
@@ -103,16 +103,6 @@
         env->light_func = def_synthetic;
         SH_ComputeLightCoefficients(env);
 
-        return env;
+        scene->lightenv = env;
 }
 
-
-LightEnv* get_scene_lightenv(Scene *scene)
-{
-        if (scene->lightenv == NULL)
-                scene->lightenv = add_lightenv("LightEnv");
-
-        return scene->lightenv;
-}
-
-

Modified: 
branches/soc-2009-yukishiro/source/blender/editors/include/UI_resources.h
===================================================================
--- branches/soc-2009-yukishiro/source/blender/editors/include/UI_resources.h   
2009-06-12 17:18:59 UTC (rev 20837)
+++ branches/soc-2009-yukishiro/source/blender/editors/include/UI_resources.h   
2009-06-12 19:07:57 UTC (rev 20838)
@@ -136,7 +136,7 @@
        ICON_PARTICLES,
        ICON_PHYSICS,
        ICON_SPEAKER,
-       ICON_LIGHT,
+       ICON_LIGHTENV,
        ICON_BLANK042,
        ICON_BLANK043,
        ICON_BLANK044,
@@ -228,7 +228,7 @@
        ICON_BONE_DATA,
        ICON_CONSTRAINT,
        ICON_SHAPEKEY_DATA,
-       ICON_BLANK079a,
+       ICON_LIGHT_DATA,
        ICON_BLANK079,
        ICON_PACKAGE,
        ICON_UGLYPACKAGE,

Modified: 
branches/soc-2009-yukishiro/source/blender/editors/sculpt_paint/paint_light.c
===================================================================
--- 
branches/soc-2009-yukishiro/source/blender/editors/sculpt_paint/paint_light.c   
    2009-06-12 17:18:59 UTC (rev 20837)
+++ 
branches/soc-2009-yukishiro/source/blender/editors/sculpt_paint/paint_light.c   
    2009-06-12 19:07:57 UTC (rev 20838)
@@ -102,6 +102,7 @@
        sj->stop= stop;
        sj->do_update= do_update;
        
+        add_lightenv(sj->scene, "LightEnv");
         SH_ComputeSceneCoefficients(sj->scene, sj->v3d);
         sj->scene->flag |= SCE_SH_COMPUTED;
 }
@@ -153,7 +154,7 @@
 static void undo_lightpaint_push(Scene *scene)
 {
         int i, j;
-        LightEnv *env = get_scene_lightenv(scene);
+        LightEnv *env = scene->lightenv;
         UndoCoeffs *uc = MEM_callocN(sizeof(UndoCoeffs), "UndoCoeffs");
 
         for (i = 0; i < 25; i++) {
@@ -172,7 +173,7 @@
         LightEnv *env;
 
         if (undo_coeffs.first == NULL) {
-                env = get_scene_lightenv(scene);
+                env = scene->lightenv;
                 for (i = 0; i < 25; i++) {
                         for (j = 0; j < 3; j++) {
                                 init_coeffs[i][j] = env->shcoeffs[i][j];
@@ -186,7 +187,7 @@
         VPaint *lp = CTX_data_tool_settings(C)->lpaint;
         RegionView3D *rv3d = CTX_wm_region_view3d(C);
         Scene *scene = CTX_data_scene(C);
-        LightEnv *env = get_scene_lightenv(scene);
+        LightEnv *env = scene->lightenv;
         PaintStroke *ps;
         UndoCoeffs *uc;
         int i, j;
@@ -511,7 +512,7 @@
         SH_solve(P, I, totvert, num_sh, C);
 
         // get light coeffs
-        env = get_scene_lightenv(scene);
+        env = scene->lightenv;
         for (i = 0; i < num_sh; i++) {
                 env->shcoeffs[i][0] = C[0][i];
                 env->shcoeffs[i][1] = C[1][i];

Modified: 
branches/soc-2009-yukishiro/source/blender/editors/space_buttons/buttons_context.c
===================================================================
--- 
branches/soc-2009-yukishiro/source/blender/editors/space_buttons/buttons_context.c
  2009-06-12 17:18:59 UTC (rev 20837)
+++ 
branches/soc-2009-yukishiro/source/blender/editors/space_buttons/buttons_context.c
  2009-06-12 19:07:57 UTC (rev 20838)
@@ -41,6 +41,7 @@
 #include "DNA_particle_types.h"
 #include "DNA_texture_types.h"
 #include "DNA_world_types.h"
+#include "DNA_lightenv_types.h"
 
 #include "BLI_listbase.h"
 
@@ -132,7 +133,26 @@
        return 0;
 }
 
+static int buttons_context_path_light(ButsContextPath *path)
+{
+       Scene *scene;
+        PointerRNA *ptr = &path->ptr[path->len-1];
 
+        if (RNA_struct_is_a(ptr->type, &RNA_LightEnv)) {
+                return 1;
+        }
+        else if (buttons_context_path_scene(path)) {
+                scene = path->ptr[path->len-1].data;
+
+                RNA_id_pointer_create(&scene->lightenv->id, 
&path->ptr[path->len]);
+                path->len++;
+
+                return 1;
+        }
+        return 0;
+}
+
+
 static int buttons_context_path_object(ButsContextPath *path)
 {
        Scene *scene;
@@ -379,6 +399,9 @@
                case BCONTEXT_WORLD:
                        found= buttons_context_path_world(path);
                        break;
+                case BCONTEXT_LIGHTENV:
+                        found= buttons_context_path_light(path);
+                        break;
                case BCONTEXT_OBJECT:
                case BCONTEXT_PHYSICS:
                case BCONTEXT_CONSTRAINT:
@@ -487,6 +510,10 @@
                set_pointer_type(path, result, &RNA_Object);
                return 1;
        }
+        else if(CTX_data_equals(member, "lightenv")) {
+                set_pointer_type(path, result, &RNA_LightEnv);
+                return 1;
+        }
        else if(CTX_data_equals(member, "mesh")) {
                set_pointer_type(path, result, &RNA_Mesh);
                return 1;

Modified: 
branches/soc-2009-yukishiro/source/blender/editors/space_buttons/buttons_header.c
===================================================================
--- 
branches/soc-2009-yukishiro/source/blender/editors/space_buttons/buttons_header.c
   2009-06-12 17:18:59 UTC (rev 20837)
+++ 
branches/soc-2009-yukishiro/source/blender/editors/space_buttons/buttons_header.c
   2009-06-12 19:07:57 UTC (rev 20838)
@@ -170,8 +170,8 @@
                uiDefIconButS(block, ROW, B_CONTEXT_SWITCH,     ICON_SCENE,     
                xco+=XIC, yco, XIC, YIC, &(sbuts->mainb), 0.0, 
(float)BCONTEXT_SCENE, 0, 0, "Scene");
        if(sbuts->pathflag & (1<<BCONTEXT_WORLD))
                uiDefIconButS(block, ROW, B_CONTEXT_SWITCH,     ICON_WORLD,     
        xco+=XIC, yco, XIC, YIC, &(sbuts->mainb), 0.0, (float)BCONTEXT_WORLD, 
0, 0, "World");
-       if(sbuts->pathflag & (1<<BCONTEXT_LIGHT))
-                uiDefIconButS(block, ROW, B_CONTEXT_SWITCH,     ICON_LIGHT,    
         xco+=XIC, yco, XIC, YIC, &(sbuts->mainb), 0.0, (float)BCONTEXT_LIGHT, 
0, 0, "Light");
+       if(sbuts->pathflag & (1<<BCONTEXT_LIGHTENV))
+                uiDefIconButS(block, ROW, B_CONTEXT_SWITCH,     ICON_LIGHTENV, 
            xco+=XIC, yco, XIC, YIC, &(sbuts->mainb), 0.0, 
(float)BCONTEXT_LIGHTENV, 0, 0, "LightEnv");
        if(sbuts->pathflag & (1<<BCONTEXT_OBJECT))
                uiDefIconButS(block, ROW, B_CONTEXT_SWITCH,     
ICON_OBJECT_DATA,       xco+=XIC, yco, XIC, YIC, &(sbuts->mainb), 0.0, 
(float)BCONTEXT_OBJECT, 0, 0, "Object");
        if(sbuts->pathflag & (1<<BCONTEXT_CONSTRAINT))

Modified: 
branches/soc-2009-yukishiro/source/blender/editors/space_buttons/space_buttons.c
===================================================================
--- 
branches/soc-2009-yukishiro/source/blender/editors/space_buttons/space_buttons.c
    2009-06-12 17:18:59 UTC (rev 20837)
+++ 
branches/soc-2009-yukishiro/source/blender/editors/space_buttons/space_buttons.c
    2009-06-12 19:07:57 UTC (rev 20838)
@@ -185,6 +185,8 @@
                ED_region_panels(C, ar, vertical, "scene");
        else if(sbuts->mainb == BCONTEXT_WORLD)
                ED_region_panels(C, ar, vertical, "world");
+        else if(sbuts->mainb == BCONTEXT_LIGHTENV)
+               ED_region_panels(C, ar, vertical, "lightenv");
        else if(sbuts->mainb == BCONTEXT_OBJECT)
                ED_region_panels(C, ar, vertical, "object");
        else if(sbuts->mainb == BCONTEXT_DATA)
@@ -203,8 +205,6 @@
                ED_region_panels(C, ar, vertical, "modifier");
        else if (sbuts->mainb == BCONTEXT_CONSTRAINT)
                ED_region_panels(C, ar, vertical, "constraint");
-        else if(sbuts->mainb == BCONTEXT_LIGHT)
-               ED_region_panels(C, ar, vertical, "light");
 
     sbuts->re_align= 0;
        sbuts->mainbo= sbuts->mainb;
@@ -346,12 +346,19 @@
                case NC_WORLD:
                        ED_area_tag_redraw(sa);
                        sbuts->preview= 1;
+                        break;
                case NC_LAMP:
                        ED_area_tag_redraw(sa);
                        sbuts->preview= 1;
+                        break;
                case NC_TEXTURE:
                        ED_area_tag_redraw(sa);
                        sbuts->preview= 1;
+                        break;
+                case NC_LIGHTENV:
+                       ED_area_tag_redraw(sa);
+                       sbuts->preview= 1;
+                        break;
        }
 }
 

Modified: 
branches/soc-2009-yukishiro/source/blender/editors/space_view3d/drawobject.c
===================================================================

@@ Diff output truncated at 10240 characters. @@

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

Reply via email to