[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [20838] branches/soc-2009-yukishiro: started adding light env rna
Jingyuan Huang
jingyuan.huang at gmail.com
Fri Jun 12 21:07:57 CEST 2009
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. @@
More information about the Bf-blender-cvs
mailing list