Revision: 42279
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=42279
Author:   kupoman
Date:     2011-11-30 00:43:33 +0000 (Wed, 30 Nov 2011)
Log Message:
-----------
Simplifying the shadow panel while the Game Engine renderer is active. Now it 
only shows options supported by the game engine.

Modified Paths:
--------------
    branches/ge_harmony/release/scripts/startup/bl_ui/properties_data_lamp.py
    branches/ge_harmony/source/blender/makesrna/intern/rna_lamp.c

Modified: 
branches/ge_harmony/release/scripts/startup/bl_ui/properties_data_lamp.py
===================================================================
--- branches/ge_harmony/release/scripts/startup/bl_ui/properties_data_lamp.py   
2011-11-30 00:32:13 UTC (rev 42278)
+++ branches/ge_harmony/release/scripts/startup/bl_ui/properties_data_lamp.py   
2011-11-30 00:43:33 UTC (rev 42279)
@@ -186,11 +186,54 @@
         sub = col.column(align=True)
         sub.prop(lamp, "atmosphere_inscattering", slider=True, 
text="Inscattering")
         sub.prop(lamp, "atmosphere_extinction", slider=True, text="Extinction")
+        
+class DATA_PT_shadow_game(DataButtonsPanel, bpy.types.Panel):
+    bl_label = "Shadow"
+    COMPAT_ENGINES = {'BLENDER_GAME'}
 
+    @classmethod
+    def poll(cls, context):
+        COMPAT_LIGHTS = {'SPOT', 'POINT'}
+        lamp = context.lamp
+        engine = context.scene.render.engine
+        return (lamp and lamp.type in COMPAT_LIGHTS) and (engine in 
cls.COMPAT_ENGINES)
+        
+    def draw_header(self, context):
+        lamp = context.lamp
+        
+        self.layout.prop(lamp, "use_shadow", text="")
 
+    def draw(self, context):
+        layout = self.layout
+
+        lamp = context.lamp
+        
+        split = layout.split()
+
+        col = split.column()
+        col.prop(lamp, "shadow_color", text="")
+
+        col = split.column()
+        col.prop(lamp, "use_shadow_layer", text="This Layer Only")
+        col.prop(lamp, "use_only_shadow")
+    
+        col = layout.column()
+        col.label("Quality:")
+        col = layout.column(align=True)
+        col.prop(lamp, "shadow_buffer_size", text="Size")
+        col.prop(lamp, "shadow_buffer_bias", text="Bias")
+        
+        row = layout.row()
+        row.label("Clipping:")
+        row = layout.row(align=True)
+        row.prop(lamp, "shadow_buffer_clip_start", text="Clip Start")
+        row.prop(lamp, "shadow_buffer_clip_end", text=" Clip End")
+        
+        layout.active = lamp.use_shadow
+
 class DATA_PT_shadow(DataButtonsPanel, Panel):
     bl_label = "Shadow"
-    COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
+    COMPAT_ENGINES = {'BLENDER_RENDER'}
 
     @classmethod
     def poll(cls, context):

Modified: branches/ge_harmony/source/blender/makesrna/intern/rna_lamp.c
===================================================================
--- branches/ge_harmony/source/blender/makesrna/intern/rna_lamp.c       
2011-11-30 00:32:13 UTC (rev 42278)
+++ branches/ge_harmony/source/blender/makesrna/intern/rna_lamp.c       
2011-11-30 00:43:33 UTC (rev 42279)
@@ -86,6 +86,24 @@
        set_current_lamp_texture(la, value.data);
 }
 
+static int rna_use_shadow_get(PointerRNA *ptr)
+{
+       Lamp *la = (Lamp*)ptr->data;
+       return la->mode & LA_SHAD_BUF;
+}
+
+static void rna_use_shadow_set(PointerRNA *ptr, int value)
+{
+       Lamp *la = (Lamp*)ptr->data;
+       if (value)
+       {
+               la->mode |= LA_SHAD_BUF;
+               la->mode &= ~LA_SHAD_RAY;
+       }
+       else
+               la->mode &= ~(LA_SHAD_BUF + LA_SHAD_RAY);
+}
+
 static StructRNA* rna_Lamp_refine(struct PointerRNA *ptr)
 {
        Lamp *la= (Lamp*)ptr->data;
@@ -462,12 +480,105 @@
                {LA_SAMP_CONSTANT, "CONSTANT_JITTERED", 0, "Constant Jittered", 
""},
                {0, NULL, 0, NULL, NULL}};
 
+       static EnumPropertyItem prop_shadbuftype_items[] = {
+               {LA_SHADBUF_REGULAR     , "REGULAR", 0, "Classical", "Classic 
shadow buffer"},
+               {LA_SHADBUF_HALFWAY, "HALFWAY", 0, "Classic-Halfway", "Regular 
buffer, averaging the closest and 2nd closest Z value to reducing bias 
artifacts"},
+               {LA_SHADBUF_IRREGULAR, "IRREGULAR", 0, "Irregular", "Irregular 
buffer produces sharp shadow always, but it doesn't show up for raytracing"},
+               {LA_SHADBUF_DEEP, "DEEP", 0, "Deep", "Deep shadow buffer 
supports transparency and better filtering, at the cost of more memory usage 
and processing time"},
+               {0, NULL, 0, NULL, NULL}};
+
+       static EnumPropertyItem prop_shadbuffiltertype_items[] = {
+               {LA_SHADBUF_BOX , "BOX", 0, "Box", "Apply the Box filter to 
shadow buffer samples"},
+               {LA_SHADBUF_TENT, "TENT", 0, "Tent", "Apply the Tent Filter to 
shadow buffer samples"},
+               {LA_SHADBUF_GAUSS, "GAUSS", 0, "Gauss", "Apply the Gauss filter 
to shadow buffer samples"},
+               {0, NULL, 0, NULL, NULL}};
+
+       static EnumPropertyItem prop_numbuffer_items[] = {
+               {1, "BUFFERS_1", 0, "1", "Only one buffer rendered"},
+               {4, "BUFFERS_4", 0, "4", "Renders 4 buffers for better AA, this 
quadruples memory usage"},
+               {9, "BUFFERS_9", 0, "9", "Renders 9 buffers for better AA, this 
uses nine times more memory"},
+               {0, NULL, 0, NULL, NULL}};
+
+       prop= RNA_def_property(srna, "use_shadow", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_boolean_funcs(prop, "rna_use_shadow_get", 
"rna_use_shadow_set");
+       RNA_def_property_update(prop, 0, "rna_Lamp_draw_update");
+
        prop= RNA_def_property(srna, "shadow_method", PROP_ENUM, PROP_NONE);
        RNA_def_property_enum_bitflag_sdna(prop, NULL, "mode");
        RNA_def_property_enum_items(prop, (spot)? prop_spot_shadow_items: 
prop_shadow_items);
-       RNA_def_property_ui_text(prop, "Shadow Method", "Method to compute lamp 
shadow with");
+       RNA_def_property_update(prop, 0, "rna_Lamp_update");
+
+       prop= RNA_def_property(srna, "shadow_buffer_size", PROP_INT, PROP_NONE);
+       RNA_def_property_int_sdna(prop, NULL, "bufsize");
+       RNA_def_property_range(prop, 512, 10240);
+       RNA_def_property_ui_text(prop, "Shadow Buffer Size", "Resolution of the 
shadow buffer, higher values give crisper shadows but use more memory");
+       RNA_def_property_int_funcs(prop, NULL, "rna_Lamp_buffer_size_set", 
NULL);
+       RNA_def_property_update(prop, 0, "rna_Lamp_update");
+
+       prop= RNA_def_property(srna, "shadow_filter_type", PROP_ENUM, 
PROP_NONE);
+       RNA_def_property_enum_sdna(prop, NULL, "filtertype");
+       RNA_def_property_enum_items(prop, prop_shadbuffiltertype_items);
+       RNA_def_property_ui_text(prop, "Shadow Filter Type", "Type of shadow 
filter (Buffer Shadows)");
+       RNA_def_property_update(prop, 0, "rna_Lamp_update");
+
+       prop= RNA_def_property(srna, "shadow_sample_buffers", PROP_ENUM, 
PROP_NONE);
+       RNA_def_property_enum_sdna(prop, NULL, "buffers");
+       RNA_def_property_enum_items(prop, prop_numbuffer_items);
+       RNA_def_property_ui_text(prop, "Shadow Sample Buffers", "Number of 
shadow buffers to render for better AA, this increases memory usage");
+       RNA_def_property_update(prop, 0, "rna_Lamp_update");
+
+       prop= RNA_def_property(srna, "shadow_buffer_clip_start", PROP_FLOAT, 
PROP_DISTANCE);
+       RNA_def_property_float_sdna(prop, NULL, "clipsta");
+       RNA_def_property_range(prop, 0.0f, 9999.0f);
+       RNA_def_property_ui_text(prop, "Shadow Buffer Clip Start", "Shadow map 
clip start: objects closer will not generate shadows");
        RNA_def_property_update(prop, 0, "rna_Lamp_draw_update");
 
+       prop= RNA_def_property(srna, "shadow_buffer_clip_end", PROP_FLOAT, 
PROP_DISTANCE);
+       RNA_def_property_float_sdna(prop, NULL, "clipend");
+       RNA_def_property_range(prop, 0.0f, 9999.0f);
+       RNA_def_property_ui_text(prop, "Shadow Buffer Clip End", "Shadow map 
clip end beyond which objects will not generate shadows");
+       RNA_def_property_update(prop, 0, "rna_Lamp_draw_update");
+
+       prop= RNA_def_property(srna, "shadow_buffer_bias", PROP_FLOAT, 
PROP_NONE);
+       RNA_def_property_float_sdna(prop, NULL, "bias");
+       RNA_def_property_range(prop, 0.001f, 5.0f);
+       RNA_def_property_ui_text(prop, "Shadow Buffer Bias", "Shadow buffer 
sampling bias");
+       RNA_def_property_update(prop, 0, "rna_Lamp_update");
+
+       prop= RNA_def_property(srna, "shadow_buffer_soft", PROP_FLOAT, 
PROP_NONE);
+       RNA_def_property_float_sdna(prop, NULL, "soft");
+       RNA_def_property_range(prop, 0.0f, 100.0f);
+       RNA_def_property_ui_text(prop, "Shadow Buffer Soft", "Size of shadow 
buffer sampling area");
+       RNA_def_property_update(prop, 0, "rna_Lamp_update");
+
+       prop= RNA_def_property(srna, "shadow_buffer_samples", PROP_INT, 
PROP_NONE);
+       RNA_def_property_int_sdna(prop, NULL, "samp");
+       RNA_def_property_range(prop, 1, 16);
+       RNA_def_property_ui_text(prop, "Samples", "Number of shadow buffer 
samples");
+       RNA_def_property_update(prop, 0, "rna_Lamp_update");
+
+       prop= RNA_def_property(srna, "shadow_buffer_type", PROP_ENUM, 
PROP_NONE);
+       RNA_def_property_enum_sdna(prop, NULL, "buftype");
+       RNA_def_property_enum_items(prop, prop_shadbuftype_items);
+       RNA_def_property_ui_text(prop, "Shadow Buffer Type", "Type of shadow 
buffer");
+       RNA_def_property_update(prop, 0, "rna_Lamp_update");
+
+       prop= RNA_def_property(srna, "use_auto_clip_start", PROP_BOOLEAN, 
PROP_NONE);
+       RNA_def_property_boolean_sdna(prop, NULL, "bufflag", 
LA_SHADBUF_AUTO_START);
+       RNA_def_property_ui_text(prop, "Autoclip Start",  "Automatic 
calculation of clipping-start, based on visible vertices");
+       RNA_def_property_update(prop, 0, "rna_Lamp_draw_update");
+
+       prop= RNA_def_property(srna, "use_auto_clip_end", PROP_BOOLEAN, 
PROP_NONE);
+       RNA_def_property_boolean_sdna(prop, NULL, "bufflag", 
LA_SHADBUF_AUTO_END);
+       RNA_def_property_ui_text(prop, "Autoclip End", "Automatic calculation 
of clipping-end, based on visible vertices");
+       RNA_def_property_update(prop, 0, "rna_Lamp_draw_update");
+
+       prop= RNA_def_property(srna, "compression_threshold", PROP_FLOAT, 
PROP_NONE);
+       RNA_def_property_float_sdna(prop, NULL, "compressthresh");
+       RNA_def_property_range(prop, 0.0f, 1.0f);
+       RNA_def_property_ui_text(prop, "Compress", "Deep shadow map compression 
threshold");
+       RNA_def_property_update(prop, 0, "rna_Lamp_update");
+
        prop= RNA_def_property(srna, "shadow_color", PROP_FLOAT, PROP_COLOR);
        RNA_def_property_float_sdna(prop, NULL, "shdwr");
        RNA_def_property_array(prop, 3);
@@ -641,25 +752,6 @@
        RNA_def_property_ui_text(prop, "Halo Step", "Volumetric halo sampling 
frequency");
        RNA_def_property_update(prop, 0, "rna_Lamp_update");
 
-       prop= RNA_def_property(srna, "shadow_buffer_size", PROP_INT, PROP_NONE);
-       RNA_def_property_int_sdna(prop, NULL, "bufsize");
-       RNA_def_property_range(prop, 512, 10240);
-       RNA_def_property_ui_text(prop, "Shadow Buffer Size", "Resolution of the 
shadow buffer, higher values give crisper shadows but use more memory");
-       RNA_def_property_int_funcs(prop, NULL, "rna_Lamp_buffer_size_set", 
NULL);
-       RNA_def_property_update(prop, 0, "rna_Lamp_update");
-
-       prop= RNA_def_property(srna, "shadow_filter_type", PROP_ENUM, 
PROP_NONE);
-       RNA_def_property_enum_sdna(prop, NULL, "filtertype");
-       RNA_def_property_enum_items(prop, prop_shadbuffiltertype_items);
-       RNA_def_property_ui_text(prop, "Shadow Filter Type", "Type of shadow 
filter (Buffer Shadows)");

@@ 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